2012-12-29 15 views
5

Muszę zastąpić ciąg zawierający białe spacje i kropki. Próbowałem z następującego kodu:Jak zamienić ciąg w java zawierający kropkę?

String customerName = "Mr. Raj Kumar"; 

customerName = customerName.replaceAll(" ", ""); 
System.out.println("customerName"+customerName); 

customerName = customerName.replaceAll(".", ""); 
System.out.println("customerName"+customerName); 

ale skutkuje to:

CustomerName Mr.RajKumar

I

CustomerName

Otrzymuję poprawną nazwę klienta od pierwszego SPO, ale z drugiego SPO nie otrzymuję żadnej wartości.

+2

Escape the dot z odwrotnym ukośnikiem: '\ .' – martijno

Odpowiedz

25

uciec z kropki, w przeciwnym razie będzie pasować do dowolnej postaci. To uchodzenie jest konieczne, ponieważ replaceAll() traktuje pierwszy parametr jako wyrażenie regularne.

customerName = customerName.replaceAll("\\.", ""); 

Można zrobić całość z jednym stwierdzeniem:

customerName = customerName.replaceAll("[\\s.]", ""); 
+2

Aby opracować poprawną odpowiedź:' replaceAll() 'działa z wyrażeń regularnych, a nie z literałów łańcuchowych. –

+0

** dziękuję !!! ** – Raghupathiraja

+0

zdobyłeś moje serce –

4

użyć tego w kodzie tylko usunąć okresy

customerName = customerName.replaceAll("[.]",""); 
1

można po prostu użyć str.replace (” . "," ") i zastąpi wszystkie wystąpienia kropki, pamiętaj, że jest tylko jedna różnica pomiędzy zastąpieniem i zastąpieniem, które jest, później używa regex jako ciągu wejściowego, gdzie jako pierwszy jeden używa prostej sekwencji znaków.

Powiązane problemy