import java.util.zip.Deflater;
import java.util.zip.Inflater;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class StringCompressor {
// 压缩字符串的方法
public static String compress(String str) {
if (str == null || str.length() == 0) {
return str;
}
try {
// 使用Deflater进行压缩
Deflater deflater = new Deflater();
deflater.setInput(str.getBytes("UTF-8"));
deflater.finish();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
while (!deflater.finished()) {
int count = deflater.deflate(buffer);
byteArrayOutputStream.write(buffer, 0, count);
}
byteArrayOutputStream.close();
byte[] output = byteArrayOutputStream.toByteArray();
// 将压缩后的字节数组转换为Base64编码的字符串
return java.util.Base64.getEncoder().encodeToString(output);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
// 解压字符串的方法
public static String decompress(String compressedStr) {
if (compressedStr == null || compressedStr.length() == 0) {
return compressedStr;
}
try {
// 将Base64编码的字符串解码为字节数组
byte[] inputBytes = java.util.Base64.getDecoder().decode(compressedStr);
// 使用Inflater进行解压
Inflater inflater = new Inflater();
inflater.setInput(inputBytes);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
while (!inflater.finished()) {
int count = inflater.inflate(buffer);
byteArrayOutputStream.write(buffer, 0, count);
}
byteArrayOutputStream.close();
inflater.end();
// 将解压后的字节数组转换为字符串
return byteArrayOutputStream.toString("UTF-8");
} catch (IOException | java.util.zip.DataFormatException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
String originalString = "这是一个需要被压缩的字符串示例";
System.out.println("原始字符串: " + originalString);
// 压缩字符串
String compressedString = compress(originalString);
System.out.println("压缩后的字符串: " + compressedString);
// 解压字符串
String decompressedString = decompress(compressedString);
System.out.println("解压后的字符串: " + decompressedString);
}
}
压缩字符串:
Deflater
类对输入的字符串进行压缩。Deflater
进行压缩。解压字符串:
Inflater
类对压缩后的字符串进行解压。Inflater
进行解压。主函数:
上一篇:java执行python脚本
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站