私はという文字列を持っています persons.name
DOT.
を次のように置き換えたい、/*/
つまり出力はpersons/*/name
私はこのコードを試しました:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
StringIndexOutOfBoundsExceptionが発生しています。
ドットを置き換えるにはどうすればよいですか?
私はという文字列を持っています persons.name
DOT.
を次のように置き換えたい、/*/
つまり出力はpersons/*/name
私はこのコードを試しました:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
StringIndexOutOfBoundsExceptionが発生しています。
ドットを置き換えるにはどうすればよいですか?
回答:
ドットの前に2つのバックスラッシュが必要です。1つはスラッシュをエスケープして通過させるためのもので、もう1つはドットをエスケープしてリテラルになるためのものです。スラッシュとアスタリスクはリテラルとして扱われます。
str=xpath.replaceAll("\\.", "/*/"); //replaces a literal . with /*/
Apache Commons Langを使用する:
String a= "\\*\\";
str = StringUtils.replace(xpath, ".", a);
またはスタンドアロンJDKの場合:
String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);
xpath.replaceAll("\\\\.", "/*/")
ですか?