1

特殊文字 "(" の検索に問題が
ありjava.util.regex.PatternSyntaxException exception has occurredます。
特殊文字として扱われる "(" と関係があるかもしれません。パターン表現が苦手です。誰かが適切に検索するのを手伝ってくれますか?エスケープ文字の?

   // I need to split the string at the "("

   String myString = "Room Temperature (C)";
   String splitList[] = myString.split ("(");   // i got an exception


   // I  tried this but got compile error           
   String splitList[] = myString.split ("\(");  
4

4 に答える 4

3

次のいずれかを試してください。

string.split("\\(");
string.split(Pattern.quote("("));

文字列分割は引数として正規表現を取るため、文字を適切にエスケープする必要があります。これに関するJon Skeetの回答をここで参照してください。

于 2013-05-21T20:46:59.053 に答える
1

初めて例外が発生した理由split()は、正規表現を引数として取り、(そこに特別な意味があるためです。これを回避するには、試したように を使用してエスケープする必要があり\ます。

あなたが見逃したのは、バックスラッシュを\Javaで余分にエスケープする必要があることです。つまり、合計2つ必要です。

String splitList[] = myString.split ("\\(");  
于 2013-05-21T20:46:53.040 に答える