Java'da bir dizedeki nokta (.) Nasıl değiştirilir


87

Bir telim var persons.name

Ben DOT değiştirmek istiyor .ile /*/ benim çıkış olacak yanipersons/*/name

Bu kodu denedim:

String a="\\*\\";
str=xpath.replaceAll("\\.", a);

StringIndexOutOfBoundsException alıyorum.

Noktayı nasıl değiştiririm?

Yanıtlar:



10

Basit bir dizgeyi değiştirmek istiyorsanız ve normal ifadelerin yeteneklerine ihtiyacınız yoksa, kullanabilirsiniz replace, değil replaceAll.

replace eşleşen her bir alt dizeyi değiştirir, ancak argümanını normal bir ifade olarak yorumlamaz.

str = xpath.replace(".", "/*/");

9

Apache Commons Lang'ı kullanın :

String a= "\\*\\";
str = StringUtils.replace(xpath, ".", a);

veya bağımsız JDK ile:

String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.