在Java中,可以使用java.util.zip
包中的Deflater
和Inflater
类来进行字符串的压缩和解压缩操作。以下是一个简单的示例代码:
import java.util.zip.Deflater;
import java.util.zip.Inflater;
public class Main {
public static byte[] compressString(String input) {
try {
byte[] inputBytes = input.getBytes();
Deflater deflater = new Deflater();
deflater.setInput(inputBytes);
deflater.finish();
byte[] outputBytes = new byte[inputBytes.length];
int compressedSize = deflater.deflate(outputBytes);
byte[] compressedBytes = new byte[compressedSize];
System.arraycopy(outputBytes, 0, compressedBytes, 0, compressedSize);
return compressedBytes;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String decompressString(byte[] input) {
try {
Inflater inflater = new Inflater();
inflater.setInput(input);
byte[] outputBytes = new byte[input.length];
int decompressedSize = inflater.inflate(outputBytes);
byte[] decompressedBytes = new byte[decompressedSize];
System.arraycopy(outputBytes, 0, decompressedBytes, 0, decompressedSize);
return new String(decompressedBytes);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
String input = "Hello, this is a test string for compression.";
byte[] compressedData = compressString(input);
String decompressedData = decompressString(compressedData);
System.out.println("Original data: " + input);
System.out.println("Compressed data: " + new String(compressedData));
System.out.println("Decompressed data: " + decompressedData);
}
}
在上面的示例中,compressString
方法用于压缩输入的字符串,而decompressString
方法用于解压缩输入的字节数组。通过这两个方法,可以实现字符串的压缩和解压缩操作。