2013-12-19 2 views
1

선생님. 배열 [i]을 분할하고 다른 어레이에 저장하려하지만 작동하지 않습니다. 다음은 내 코드어레이 분할이 예상 된 결과를 제공하지 않습니다.

import java.util.Scanner; 

public class prog1 { 

    public static void main (String [] args){ 
     Scanner input = new Scanner(System.in); 
     int a = input.nextInt(); 
     String arr1[] = new String [a]; 
     for (int i=0;i<a;i++) { 
      arr1[i] = input.nextLine(); 
     } 
     for (int i=0;i<a;i++) { 
      String temp[] = arr1[i].split("\\+"); 
      System.out.println(temp.length); 
      System.out.println(temp[0]); 
     } 
    } 
} 

샘플 입력 :

1 
arka + xyz 

예상 출력 :

2 
arka 

그러나 출력은 내가

무엇입니까
1 
<blank> 

나는 java로 신규입니다. 이 문제를 해결할뿐만 아니라 왜이 문제에 직면하고 있는지 말해 주시겠습니까?

답변

2

문제입니다.

이 문제를 해결하는 한 가지 방법은 input.next()을 추가하는 것입니다. int a = input.nextInt(); 바로 뒤에 반환 문자를 읽습니다. 내 생각에 응용 프로그램은 예상대로 작동합니다.

또는 이와 같은 번호를 읽을 수 있습니다.

int a = Integer.parseInt(input.nextLine()); 
3

는 만 nextInt()int을 읽고 당신은 당신의 for 루프에 추가 라인을 읽기 전에 첫 번째 줄의 끝을 소비하지 않았다, 그래서 for 루프의 첫 번째 반복은 첫 번째 줄의 끝이 아닌를 읽고 두 번째 줄.

씹는 당신의 for 루프를 시작하기 전에 첫 번째 줄의 끝 : 당신이 다음 줄로 읽 번호를 입력 한 후 Enter 키를 누르 때

String chomp = input.nextLine(); 
for(int i=0;i<a;i++){ 
    // Then read the following lines here. 
관련 문제