나는 텍스트를 포함하는 텍스트 파일을 구문 분석하고에 일치 : 나는 파일을 구문 분석하고의 발생 수를 계산하려고 코드를 구현 한Scanner.hasNext 문자열은 자바
Level1
Some-text-here
Level2
Some-text-here
Level3
Some-text-here
파일의 "레벨". 이것은 내가 그 일을하고 어떻게 :
Scanner scanner = new Scanner(new File(inPath));
Pattern p = Pattern.compile("Level");
while(scanner.hasNext()) {
if(scanner.hasNext(p)) {
++lastLevelCreatedWas;
}
scanner.next();
}
그러나 hasNext (P)는 "레벨"의 정확한 일치를 찾기 위해 노력하고 단지 단어를 무시하기 때문 명중 않겠다 결코 '의 경우'조건 '레벨 1', "Level2"등등. 키워드 "레벨"이 포함 된 단어를 어떻게 고려해야합니까?
이Scanner scanner = new Scanner(new File(inPath));
scanner.useDelimiter("Level");
while(scanner.hasNext()) {
++lastLevelCreatedWas;
scanner.next();
}
그것은 당신이 원하는대로 다음 "레벨"토큰으로 이동하면서 :
그래, 그 트릭을 했어. 문자열을 매칭하여 그것을하고 싶다면 어떻게해야할까요? 내가 Patter.compile ("Level", Pattern.COMMENTS)과 같은 것을 사용하겠습니까 ?? – Rafay
당신은 수준을 소모하기 원한다면'scanner.useDelimiter ("Level \\ d +");',''Level "'다음에 1-n 숫자를 사용하고 싶을 것입니다 – Bohemian