当前位置:首页 » 文件管理 » java字符压缩

java字符压缩

发布时间: 2023-09-29 18:08:19

① 输入一串小写字母(a-z)组成的字符串,将连续字母压缩输出字符串,用java实现

Scanner scanner = new Scanner(System.in);

String str = scanner.nextLine();/咐并/dasdascasd
char[] chars = str.toCharArray();
char c = 0;
int j = 1;
for (int i = 0; i < chars.length; i++) {
char b = chars[i];
if (c!=b) {
if (j!=1) {
System.out.print(j);
}
System.out.print(c);
j = 1;/银链/初始化锋简孙j
}else{
j = j + 1;
}
c = b;
}
System.out.println(chars[chars.length-1]);
}

② Java,把字符窜压缩成十六进制,并且压缩一半

12345678910111213141516171819小猪,已解答,采纳即可publicclassRectangle{publicstaticvoidmain(String[]args){StringS1="0412134FFFFFFFFFF";StringT1="00007770000200";longsi=Long.parseLong(S1,16);longti=Long.parseLong(T1);longst=si^//很显然是十进制0~9//4693090553043039415System.out.println(st);Stringhex=Long.toHexString(st);//412134fe30df34b7System.out.println(hex);}}

追问

按照异或的算法,首位0和0异或的结果不是应该是0吗?为什么算出来后结果的第一位是4?还是说内部执行的机制不是这样的?求教,谢谢

③ Java编写方法实现字符串压缩的功能,连续的 n 个字符 x 表示为 xn,例如 aaaa 表示为a4,

packagedemo1;

publicclassDemo2{
publicstaticStringreceString(finalStringstr){
StringBufferresult=newStringBuffer();
finalintcount=str.length();
charc1=str.charAt(0);
intsum=岁没1;
for(inti=1;i<count;i++){
charc2=str.charAt(i);
if(c1逗雀慧==c2)
{
sum++;
continue;
}
result.append(c1).append(sum);
c1=c2;
sum=1;
}
result.append(sum).append(c1);
returnresult.toString();
}山答
publicstaticvoidmain(String[]args){
System.out.println(receString("aaaaaaaabbbccdddeeebbba"));
}
}

④ java如何将很长的字符串存储为压缩文件

String str = ""; int length = str.length(); List<Integer> index = new ArrayList<Integer>(); for (int i = 0; i < length - 1; i++) { if(str.charAt(i) != str.charAt(i + 1)){ index.add(i); } } if(str.charAt(length - 2) != str.charAt(length - 1)){ index.add(length - 1); } int start = 0; StringBuffer result = new StringBuffer(); for (int i = 0; i < index.size(); i++) { int end = index.get(i) + 1; if(i != 0){ start = index.get(i - 1) + 1; } String temp = str.substring(start, end); result.append(temp.charAt(0)).append(end - start); } System.out.println(result.toString());最终结果是:a6s4c5d7w1s1a3s1d1c1a1s1

⑤ java,如何将字符串"12345678901212345678"压缩一下,使输出结果变短,并能反向解析

1. 可以考虑引入字符A~Z,加上0~9,形成36进制(更进一步可以大小写敏感,加上a~z,形成62进制);
2. 将上述字符串缓春败 除以36 取余;作为个位数;上述字符串 除以36 取整,作为结果,重复本步取余计算。
3. 获得结果。

4. 反向解析,将扰颤上述结果,分别按位数 乘以 36 ;
5. 最后合并相加,获得原森侍字符串。

⑥ java 实现对字符串进行GSM(7bit)压缩编码后HEX 字符串输出

JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指哗枯袜定编码来得到字节数组。可以用这两个函数来实现编码转换。
下面是一个简单的例子,注意一下例子中的文字本身的编码,最好在自己的环境中用gb2312重新输入,不然可能是乱码败雀。当然转换后输出肯定有一个是乱码,也肯能都是乱码。根据你的编辑器的编码格式有关。
public class EncodingTest{ public static void main(String[] args) { try { String gb = new String("乱激国标2312".getBytes(),"gb2312"); System.out.println(gb); byte [] b = gb.getBytes("gb2312"); String ios = new String(b,"ISO-8859-1"); System.out.println(ios); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }}

⑦ java字符串经过bcd压缩后怎么传输

解决方法:

据我所知,您目前的做法是:

>使用getBytes(“UTF-8”)将String转换为字节数组.

>压缩字节数组

>使用新的String(字节,…,“UTF-8”)将压缩字节数组转换为String.

>传输压缩字符串

>接收压缩字符串

>使用getBytes(“UTF-8”)将压缩字符串转换为字节数组.

>解压缩字节数组

>使用新的String(bytes,…,“UTF-8”)将解压缩的字节数组转换为String.

这种方法的问题在于步骤3.压缩字节数组时,您创建的字节序列可能不再是没汪有效的UTF-8.结果将是步骤3中的例外.

解决方案是使用像Base64这样的“字节到字符”编码方案将压缩字节转换为可传输的字符串.换句话说,用调用Base64编码函数代替步骤3,用调用Base64解码函数代替步骤6.

笔记:

>对于小弦,压缩和

编码很可能实际上

增加传输字符串的大小.

>如果要将压缩的字符串合并到URL中,您可能希望为Base64选择不同的编码,以避免兆察缓需要进行URL转义的字符.

>根据您传输的数据的性质,您可能会发现特定于域的压缩比通用压缩更好.考虑在创建以逗号分隔的字符串之前压缩数据.考虑以逗号分隔的字符串的族模替代方法.

⑧ Java 字符串压缩与解压

给你提供个思想
首先你这不是物理上的压缩,也就是说它是一个逻辑上的我们认同上的压缩。
你需要写一个算法来对你所要处理的数据进行统计,然后按照算法来改变结果。
最后达到一个后台的虚拟压缩(实际上不是压缩,只是算法)。

热点内容
sqlserver注册表清理 发布:2024-05-18 20:13:14 浏览:989
linux删除连接 发布:2024-05-18 20:06:56 浏览:820
linux搭建云服务器平台 发布:2024-05-18 19:52:21 浏览:400
安卓怎么关闭美易订阅 发布:2024-05-18 19:29:16 浏览:642
苹果手机配置代理服务器怎么开 发布:2024-05-18 19:29:07 浏览:229
服务器屏蔽了别人的ip 发布:2024-05-18 19:10:09 浏览:619
怎么获取ins服务器地址 发布:2024-05-18 19:10:03 浏览:30
仙方一般是什么配置 发布:2024-05-18 18:53:43 浏览:159
黑莓安卓手机主题下载到哪里 发布:2024-05-18 18:47:18 浏览:57
汤靖轩编程 发布:2024-05-18 18:46:04 浏览:533