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

字符串压缩java

发布时间: 2023-06-01 01:03:19

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 字符串压缩与解压

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

⑶ 输入一串小写字母(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怎样压缩base64编码的字符串

是生成了base64字符郑橡串,要压缩喊芹旁 ? 那可以使用zip输首友出流去压缩

~~~~~

⑸ 用Java 编程 如何将 字符串原地压缩。

对字符做累加,如果遇到相同字符则加1,否则输出累加的数

⑹ 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 字符串加密 加密结果的长度如何压缩

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

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

⑼ 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,如何将字符串"12345678901212345678"压缩一下,使输出结果变短,并能反向解析

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

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

热点内容
数据库字体 发布:2024-05-06 16:33:53 浏览:696
c语言链表建立 发布:2024-05-06 16:17:33 浏览:220
python3xlwt3 发布:2024-05-06 16:09:59 浏览:372
c语言的意思啊 发布:2024-05-06 15:54:19 浏览:69
如何重置手机密码realme 发布:2024-05-06 14:57:25 浏览:348
自己搭建外网服务器违法吗 发布:2024-05-06 14:56:32 浏览:630
苹果安卓哪个步数准确 发布:2024-05-06 14:43:58 浏览:240
安卓手机软件用什么编程语言写 发布:2024-05-06 14:30:07 浏览:657
des解密python 发布:2024-05-06 14:30:06 浏览:684
n的阶乘算法 发布:2024-05-06 14:29:57 浏览:552