2012-05-08 3 views
1

이 형식의 파일이 있습니다. 50 xxx/70 aaa/90 ccc/다음 스캐너()를 매개 변수로 사용

프로그램은 파일을 기본 디렉토리에 저장합니다. 하지만 아무것도 스캔하지 않습니다 ... 뭐가 잘못 됐니? 미안 프로그래밍에 잘 못 들었습니다.

"이전"xxx를 "텍스트"로 읽은 다음 aPf.insert (이전, 텍스트)에서이 두 가지를 사용하고 싶습니다.

File file = new File("poznamky.txt"); 
     Scanner scanner = null; 
     int prior; 
     String text; 

     try { 
      scanner = new Scanner(file); 
      scanner.useDelimiter("/"); 

     while (scanner.hasNext()) { 

      prior = scanner.nextInt(); 
      text = scanner.next(); 
      aPf.insert(prior, text); 

} 

} catch (FileNotFoundException e) { 

e.printStackTrace(); 

} 
+0

오, 그래 나는 aPf를 만들었습니다 .... –

답변

2

구분 기호 /이 제대로 이스케이프 처리되지 않았다고 생각합니다. \/과 같은 것을 사용하여 이스케이프 처리하십시오. 더 명확히하기 위해이 Escaping a forward slash in a regular expression을 참조하십시오.

+0

오케이 그럼 이제 구분 기호를 변경했습니다. 그리고 조금은 그걸로 작동 ..하지만 난 여전히 문제가 ..하지만 그것을 해결하려고, 당신은 조금 도와 줬어 :) –

+0

그것이 도움이 된 것을 기쁘게 생각합니다. 다른 문제를 알려 주시면 도와 드릴 수 있습니다. – raddykrish

0

두 가지 방법이 있습니다. 첫 번째는 reset()을 사용하여 구분 기호를 재설정하는 것입니다. 그래서 내가 말하고자하는 것은 nextInt에 대한 ''의 기본 구분 기호로 가서 다음 호출에 useDelimiter ('/')를 호출하는 것입니다. 그런 다음 scanner.reset()을 호출하십시오.

또 다른 방법은/구분 기호를 기준으로 문자열을 가져 오는 것입니다. 그런 다음 해당 문자열을 다음 분리 문자로 공간을 기준으로 더 분할합니다. 아마 이것을 달성하기 위해 StringTokenizer를 사용할 수 있습니다.

+0

많은 감사합니다! 나는 다르게 다르게 했어.하지만 나는 어떤 문자열 토크 나이저가 무엇인지 알지 못했고 그래서 새로운 것을 배웠고 도움이되었다. :) thanks –

관련 문제