3

Java で文字列をエンコードする方法を作成しようとしてきましたが、大きな障害にぶつかりました。

私の問題は、\n \u \ などのエスケープを無視できないことです。(それらもエンコードされます。)

私はこの 1 つの問題に 3 時間を費やしました。これが私のコードです。

public Object encode() throws EncodingException {
    String encoded = "";
    if (!isEncoded) {
        int i = 0;
        char[] alpha = (this.value.toString().toCharArray());

        while (!(i >= alpha.length)) {
            i++;
            try {
                if(!(alpha[i - 1] == '\\')){
                    encoded = encoded
                            + SerializeEncoding.encoding.encodings.get(
                                    new String(new char[] { alpha[i - 1] }))
                                    .toString();
                }else{
                    encoded = encoded
                    + alpha[i - 1] + alpha[i];
                    i++;
                }

            } catch (NullPointerException e) {
                encoded = encoded
                        + new String(new char[] { alpha[i - 1] })
                                .toString();
            }

        }
        encodedValue = (Object) encoded;
        isEncoded = true;
        log = encodedValue;
        return (Object) encodedValue;
    } else {
        throw new EncodingException("Already encoded");
    }
}

カーリップさんありがとう

PS。私が何かを逃した場合は教えてください。

4

2 に答える 2

0

1 つのオプションは次のようになります。コードを最適化してください。

String before = "test\ntest1\n";
         String after = "";
            String [] str = before.split("\n");
            for (String string : str) {
                after = after+encode(string)+"\n";
            }
于 2014-06-03T06:50:23.710 に答える