0

文字列内の "\n" のすべてのインスタンスを br タグに置き換える方法があります。閉じられていない文字リテラル エラーが発生します。

public static String replaceLineWithBr(String text){
String result="";
    if(text.length()<=1){
 return text;
}else{
 for(int i=0;i<text.length();i++){
    if((text.charAt(i+1)=='n') && (text.charAt(i)=='\')){ //<--- Error line
        result=result+text.substring(0,i)+"<br />"+text.substring(i+2,text.length());
    }else return text;

    }

} 
return text;

このコードtext.charAt(i)=='\'が有効でないのはなぜですか?

4

6 に答える 6

7

\\nやなどの紙送り制御文字の開始を示すために使用される特殊文字\tです。バックスラッシュ文字自体を表すためにエスケープする必要があります

text.charAt(i) == '\\'
于 2013-07-17T18:45:19.230 に答える
3

「\」文字は、文字をエスケープするために使用されます。char のように二重エスケープを使用して char をインスタンス化する必要があります'\\'

編集

また、おそらく問題を回避して、String.replaceAll代わりにメソッドを使用することもできます。

String foo = "foo\nbar\r\nblah";
System.out.println(foo.replaceAll("((\r)?\n)", "<br/>"));

出力:

foo<br/>bar<br/>blah
于 2013-07-17T18:45:51.157 に答える
0

\\ は \ に置き換えられます。だからこそ、そのように書く必要があります。あなたはそれを逃れる必要があります。

于 2013-07-17T18:46:48.270 に答える