2

編集:偽!以下のコードは機能します。私の場合、文字列は "\n" として読み取られ、1 文字ではなく 2 文字になります。私はばかです。

孤立した単一の文字を文字列から文字に変換しようとしています。\ を別の文字として扱うため、エスケープ文字を単一の文字に変換するのに問題があります。

String str = "\n"; 
char charVal = str.charAt(0); // Gives charVal as \

エスケープされたシーケンスを個別の文字ではなく単一の文字として解釈する関数はありますか?

私はApache commonsパッケージなしでこれをやろうとしています。

ありがとう!

4

2 に答える 2

3

更新された質問への回答:結果がどういうわけか混乱しています。strはちょうど 1 文字なので、charValその文字、改行になります。出力を確認し、それでも期待どおりでない場合は、問題を示すSSCCEをお送りください。

元の回答: tempではなくstr、結果としてstr.charAt(0)絶対に得られないでしょう\strは 1 文字の文字列であるため、その 1 文字 (改行) しか取得できません。おそらく、コードのさらに上に次のようなものがあります。

String temp = "\\n";

その場合、最初の文字がバックスラッシュの 2 文字の文字列になります。

于 2013-02-14T02:38:15.090 に答える
2

再現できない

    String str = "\n";
    char charVal = str.charAt(0);

    System.out.println(charVal);

改行を与える

于 2013-02-14T02:36:18.757 に答える