2013-04-13 6 views
-1

파일을 읽고 고유 한 단어의 수를 얻고 싶습니다. 지금까지 나는 라인별로 파일을 읽고 (readline) arraylist에 저장 한 다음 문자열을 조작 할 수 있었다.파일 읽기 및 고유 한 단어 찾기

내 입력은 다음과 같이 표시됩니다

(OR (또는 TV 파티) (연구)) 기본적으로 (=> 시험 (NOT (또는 TV 파티)))

, I 접두사에서 접미어로 각 줄을 변환하려고하고 있는데, 나는 진리표를 구성하고 케이스를 테스트 할 수 있도록 입력 파일 (TV, 파티 등)에 포함 된 모든 diff 변수를 찾아야합니다.

현재 배열 목록의 모든 문자열을 조작하고 있습니다. 더 좋은 방법이 있나요?

String line = "(OR (OR tv party) (study)) (=> exam (NOT (OR tv party)))"; 
Scanner sc = new Scanner(line); 
sc.useDelimiter("[^a-z]"); 
Set<String> set = new TreeSet<String>(); 
while(sc.hasNext()) { 
    String word = sc.next(); 
    if (!word.isEmpty()) { 
     set.add(word); 
    } 
} 
System.out.println(set); 

이 인쇄 :

[exam, party, study, tv] 
+0

좋아, 이제 스캐너에서 읽었습니다. 그러나 저는 변수를 찾는 패턴을 찾을 수 없으므로 (사실은 별개입니다). –

+0

당신의 질문은 특별히'접두사'를'중위어'부분으로 불분명합니다. 예상되는 출력을 가진 예를 들어주세요. ** 당신이 시도한 것은 무엇입니까! ** – Anirudha

답변

2

,보십시오. 마지막에는 고유 한 단어를 얻을 것입니다. 단어 수를 알고 싶다면 map<String, Integer>을 사용하십시오. 여기서 key (문자열)은 단어이고 value (정수)는 카운터입니다.

1

분할 선 및 Set에 단어를 저장하면 변수를 찾으려면