2013-10-21 2 views
0
에 문자열을 포함하는 파일의 정수를 스캔하는 방법

은 어떻게 스캐너 스트림이 이름 및 번호를 모두 읽어 nextLine()도 자바

Jane 354 
Jill 546 
Jenny 718 
Penny 125 

스캐너 방법에서 바로 정수를 읽어 얻을, 그래서 나는 것 그냥 구문 분석 할 수 있다고 가정하지만 이 이름을 건너 뛰고 숫자를 읽는 방법이 있는지 알고 싶었습니다. 바로 숫자가 String으로 시작되면 즉시 실패하기 때문입니다.

답변

0

어떨까요? next()은 어떨까요? 그 결과를 무시한 다음 nextInt()을 사용 하시겠습니까? 이것은 모든 회선이 질문에 제시된 형식 인 경우 필요한 것을 정확히 수행해야합니다.

0

당신은 예를 들어, 문자열을 건너 scanner.next을 (전화) 그것으로 아무것도 할 수

// Scanner sc; 
while(sc.hasNextLine()){ 
    sc.next(); //Skip string 
    int number = sc.nextInt(); 
} 
+0

같은 것은 같은 일을 할 수 있을까? 우리는이 파일이 어떻게 구성되어 있는지 이외에는 아무 것도 처리 할 수 ​​없으므로이 방법이 효과가있을 것이라고 생각합니다. 앞으로 더 유연한 코드를 작성하는 방법을 배우게 될 것입니다. – JediCreed94

0

또한 scanner.nextLine()를 사용 후 등록으로 INT를 잡을 수 예 정규

String mydata = scanner.nextLine(); 
Pattern pattern = Pattern.compile([0-9]+); 
Matcher matcher = pattern.matcher(mydata); 
if (matcher.find()){ 
    int num = Integer.parseInt(matcher.group(1)); 
} 
+0

지금은 제 범위를 벗어났습니다. 나는 아직 지식이없는 것들을 사용하면 꽤 의심스러워 보일 것이다. 무슨 일이 벌어지는 지 알 수있을 것 같아요.하지만 지금까지 Pattern과 Matcher 수업이나 사용법을 알지 못했습니다. – JediCreed94

+0

형식이 일치하면 공백에 String 클래스 메서드 "split"을 사용하고 각 줄의 두 번째 결과 (int)를 가져올 수도 있습니다. – usddddd

+0

그리고 파싱하고 int로 저장합니다.하지만 제가 말했던 것처럼, Scanner 클래스를 통해 일을하고 싶습니다.이 과제는이 과제에서 중점을 둡니다. reddit.com/r/javahelp에서 또 다른 유용한 팁을 얻었습니다. 필자가해야한다면 구분 기호를 변경할 수 있다고 했으므로 Pshemo와 MrAzzaman의 답변을 생각해 낼 것입니다. – JediCreed94

0

는 당신이 바로 Pshemo 말했듯이

Scanner read = new Scanner(new File("some file here")); 
while(read.hasNext()){ 
    if(read.next() instanceof Integer){ 
     System.out.println(read.next()); 
    } 
}