2014-02-27 6 views
0

입력으로 String을 입력하고 공백 문자로 분할하여 단어를 배열에 저장 한 다음 해당 단어를 다른 단어와 비교하는 데 사용하려고합니다. 문제는 비교되는 단어에 마침표가 포함되지 않으므로 분할 기간 동안 무시해야한다는 점입니다. 예를 들어공백으로 문자열 분할 및 마침표 무시

:

String testString = "This. is. a. test. string."; 
String[] test = testString.split(" "); 

for (int i = 0; i < test.length; i++) { 
    System.out.println(test[i]); 
} 

이 인쇄됩니다 대신

This. 
is. 
a. 
test. 
string. 

, 나는 인쇄하는 데 싶습니다

This 
is 
a 
test 
string 

을 나는 기간을 무시할 수있는 방법 분열?

+0

입력에 항상 이와 같은 기간이 있습니까? – csmckelvey

+0

가능한 복제본 [Java : 문자열에서 모든 문자 발생 제거] (http://stackoverflow.com/questions/4576352/java-remove-all-occurances-of-char-from-string) –

답변

5

어떻게

String[] test = testString.split("\\.+\\s*"); 
+0

http에서 업데이트 및 테스트 됨 : //regexpal.com/ –

+0

\ s *를 사용하여 여러 공백을 확인하십시오 –

+0

예제 입력에서 더 이상 잘못된 것은 아니지만 그저 하나의 예일뿐입니다. OP는 "분할 기간 동안 무시하길 바란다"고 질문했다. 이것이 그 요구 사항에 어떻게 들어 맞는지는 모르겠습니다. 예를 들어, 줄임표가있는 문장은 무엇입니까? – mbroshi

0

가 갈라 문자열 replace(".","");

012 내부의 점을 대체
String[] test = testString.split("\\.[ ]*"); 

또는

String[] test = testString.split("\\.\\s*"); 

또는 하나 개 이상의 기간 (및 생략)에 대한

에 대한
+0

전에 제거하지 않으시겠습니까? 차이가 있습니까? –

+1

이것은 "." String 배열에 있습니다. –

0
public class Main { 
    public static void main(String[] args) { 
     String st = "This. is. a. test. string.""; 
     String[] tokens = st.split(".(?=([^\"]*\"[^\"]*\")*[^\"]*$)"); 
     for(String t : tokens) { 
      System.out.println("> "+t); 
     } 
    } 
} 
1
String[] test = testString.split("\\.\\s*");