¿Cómo comprimir una cadena en Java?

yo sueloGZIPOutputStream oZIPOutputStream comprimir una cadena (mistring.length() es inferior a 20), pero el resultado comprimido es más largo que la cadena original.

En algún sitio, encontré que algunos amigos dijeron que esto se debe a que mi cadena original es demasiado corta,GZIPOutputStream se puede usar para comprimir cadenas más largas.

Entonces, ¿alguien puede ayudarme a comprimir una cadena?

Mi función es como:

String compress(String original) throws Exception {

}

Actualizar:

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;
import java.util.zip.*;


//ZipUtil 
public class ZipUtil {
    public static String compress(String str) {
        if (str == null || str.length() == 0) {
            return str;
        }

        ByteArrayOutputStream out = new ByteArrayOutputStream();
        GZIPOutputStream gzip = new GZIPOutputStream(out);
        gzip.write(str.getBytes());
        gzip.close();
        return out.toString("ISO-8859-1");
    }

    public static void main(String[] args) throws IOException {
        String string = "admin";
        System.out.println("after compress:");
        System.out.println(ZipUtil.compress(string));
    }
}

El resultado es :

Respuestas a la pregunta(0)

Su respuesta a la pregunta