Strings nach Bytes kürzen

Ich erstelle Folgendes, um eine Zeichenfolge in Java auf eine neue Zeichenfolge mit einer bestimmten Anzahl von Bytes zu kürzen.

        String truncatedValue = "";
        String currentValue = string;
        int pivotIndex = (int) Math.round(((double) string.length())/2);
        while(!truncatedValue.equals(currentValue)){
            currentValue = string.substring(0,pivotIndex);
            byte[] bytes = null;
            bytes = currentValue.getBytes(encoding);
            if(bytes==null){
                return string;
            }
            int byteLength = bytes.length;
            int newIndex =  (int) Math.round(((double) pivotIndex)/2);
            if(byteLength > maxBytesLength){
                pivotIndex = newIndex;
            } else if(byteLength < maxBytesLength){
                pivotIndex = pivotIndex + 1;
            } else {
                truncatedValue = currentValue;
            }
        }
        return truncatedValue;

Dies ist mir als erstes in den Sinn gekommen, und ich weiß, dass ich mich verbessern könnte. Ich habe einen anderen Beitrag gesehen, in dem eine ähnliche Frage gestellt wurde, bei dem jedoch Strings mit den Bytes anstelle von String.substring abgeschnitten wurden. Ich denke, ich würde lieber String.substring in meinem Fall verwenden.

EDIT: Ich habe gerade die UTF8-Referenz entfernt, da ich dies eher für verschiedene Speichertypen tun könnte.

Antworten auf die Frage(24)

Ihre Antwort auf die Frage