2016-08-06 3 views
-1

모두 바꾸기를 사용하는 데 문제가 있습니다. 교체 된 단어 대신 공백이 추가됩니다. 간단한 예 :Java - 공백없이 replaceAll 사용

String str= "I like java"; 
str.replaceAll("java",""); 

String str= "I like java"; 
str.replaceAll("like",""); 

이 "I (2 여기 대) 자바"

String str= "I like java"; 
str.replaceAll("I",""); 

준다 "(2 개 공간을 제공"I는 (여기서 공간)처럼 "범 여기에) 자바처럼 "

어떻게 replaceAll을 사용하여이 공간을자를 수 있습니까? 그것은 대체 논쟁 ("")과 관련이 있다고 생각 하시겠습니까?

참고 : 문자열에있는 경우 삭제해야하는 단어가 몇 개 있으며 어디에서 찾을 수 있는지 알 수 없습니다.

감사

+2

글쎄,''java ''와''like "''가 너무 명백하기 때문에, 우리는 더 특별한 방법을 기다리는 것이 더 좋다 : D. Btw는 replaceAll이 아니라'replace'를 사용해야합니다. – Tom

+0

당신은 공간 + 단어가 아닌 단어를 대체하려고합니다. 예상대로 작동합니다. – ravthiru

+0

@Tom 추가 공간을 없애는 방법은 없습니까? – Niminim

답변

1

당신은 자바 ""교체하기보다는, 원래 당신의 문자열에 있던 두 개의 공간을두고, ""와 "자바"를 교체하고 (공간주의). 그러나,이 ...

String str= "I like java"; 
str = str.replaceAll(" java",""); 

당신이 찾는 경우는 최초의 우주에 대한 선호,이 작업을 수행 할 수와 함께, 그 단어 주위 공간의 하나를 대체 할 ... 일 것이다

String regex = " like|like "; 
System.out.println("I like java".replaceAll(regex,"")); 
System.out.println("like java".replaceAll(regex,"")); 
+0

그것은 특정 문제를 해결하지만 구걸시 "I"를 대체하고 싶습니까? 기억하십시오 - 교체 된 단어가 어디서 발견 될지 모르겠습니다. 나는 일반적인 해결책이 필요하다. 어떤 생각? – Niminim

+1

지금까지 구체적인 내용을 제공하지 않았기 때문에 귀하의 질문에 답변했습니다. "일반적인 해결책"을 원하는 것보다 구체적이어야합니다. –

+0

맞아, 그게 바로 내가 그 점을 바로 잡은 이유야. 어떤 생각? – Niminim