-1
Javaで文字列をドット( "。")で区切りたいのですが、JavaのStringのsplit関数が正規表現を使用していることを知っていますので、someString.split("\.")
を使用して特殊文字 "。"をエスケープしましたが、作業;私はsomeString.split("\\.")
を試してみました。" t"はJava String.splitでは動作しますが、 "。"では動作しないのはなぜですか?
前にsplit("\t")
を使用して、タブで文字列を分割していました。なぜ特別な文字'\t'
をsplit("\\t")
のようにエスケープする必要はないのですか?
@ErwinBolwidt:私に思い出させてくれてありがとう。多くの言語、多くの*わずかな*異なる規則...: –
詳細については、リンクされた質問の回答を見てください。しかし、 "\"と\ "\ t" 'の間の二分法を再考してください。文字列リテラルでは '\ .'は無効なエスケープシーケンスですが、文字列リテラルでは' \ t'はタブ文字です。タブ文字は正規表現で特別なものではないので、 'split(" \ t ")'はタブを分割します。背後にある正規表現にバックスラッシュを渡すには(正規表現では特別なので '.'をエスケープすることができます)、文字列に実際のバックスラッシュを入れる必要があります。もちろん、それをエスケープする必要があります(' "\ \ "")。 –