2016-12-22 2 views
-1

문자열에 여러 공백이 포함될 수 있습니다. 여러 개의 후속 공백을 하나의 공백 문자로 교체해야합니다. "문제"는 얼마나 많은 공간이 발생할 수 있는지를 알지 못한다는 것입니다. 내가 찾는 함수는 발견 된 일치의 첫 번째 발생을 대체 할뿐만 아니라 String의 여러 개의 동일한 문자를 모두 대체합니다. 문자열에 여러 개의 동일한 문자가 포함되어 있습니다.

나는 인터넷에서 많이 검색 한 내가 didnt 한 일 그 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#sum

에 운터 "꺼린 ​​한정 기호"를 발견 정규식 "X * (X, 0 회 이상)?"를 시도했다 : s1 = s1.replaceAll(" *?", " "); s1 = "Hello World";s1 = "Hello World";

으로 변환해야합니다. 어떤 도움을 주셔서 감사합니다.

답변

3

replaceAll()은 하나의 공백으로 공백을 대체 할 수 있습니다.

String st = "helllo world" 
System.out.println(st.replaceAll("\\s+"," ")) 

Output : helllo world 
+0

공백을 나타내는 정규식 검색기는이 대답이 올바르게 지적되었으므로'\\ s +'입니다. 's1.replaceAll ("\\ s +", "")'은 새로운 문자열을 결과로 생성한다는 점에 유의하십시오. 따라서 s1은 변경되지 않고 replaceAll의 결과를 새 변수에 대입하여 regexp 대체를 사용해야합니다. – Thanos

관련 문제