2015-01-10 3 views
0

숫자 n을 기반으로 사용자로부터 문자열을 읽고 n 문자열을 다른 변수 n에 저장해야합니다. 나는 그들을 다른 문자열에 넣는 방법에 붙어 있습니다. 제발 도와주세요. 내가 입력 사용자로부터 5 문자열을 가지고 5 개 가지 문자열 변수에 저장Java에서 다중 문자열 읽기

public static void main(String[] args) { 
     int b; 
     String s=""; 

     Scanner in = new Scanner(System.in); 

     System.out.println("Enter verifying number: "); 
     b = in.nextInt(); 

     for (int i=0; i<=b; i++) { 

      System.out.println("Enter a string: "); 
      s = in.nextLine(); 
     } 

그래서 b = 5, 경우 :

내 코드입니다. 사용자로부터 가져올 수 있지만 다른 변수에 할당 할 수는 없습니다. 제발 도와주세요. 감사합니다. .

+2

내가 읽기를 추천 할 것으로

String []inpupts = new String[b]; for (int i=0; i< b; i++) { System.out.println("Enter a string: "); inputs[i] = in.nextLine(); } 

Java 데이터 구조에 대해 설명합니다. 어쩌면 ArrayList를 사용할 수 있습니다 –

+2

배열에 대한 읽기 ... –

+0

배열 또는'List '을 사용하십시오. –

답변

1

배열을 생성하고 아래와 같이 배열에 저장 : 당신은 다음과 같이 값을 액세스 할 수 있습니다

String s[] = new String[b];//use b+1 if you need b+1 entries 
for (int i=0; i<b; i++) {//use <=b is you need b+1 entries 
     System.out.println("Enter a string: "); 
     s[i] = in.nextLine(); 
} 

: 코드에서

for (int i=0; i<b; i++) //use <=b is you need b+1 entries 
     System.out.println("Entered string was : " + s[i]); 
} 
+1

왜'new String [b]'가 아닌'new String [b + 1]'인가? –

+1

OP의 for 루프를 참조하십시오. 그는 0에서 b까지의 사용자 값을 가져옵니다. 그러므로 b + 1. – SMA

+0

즉, 사용자가 누른 Enter를 소비하기 위해'Scanner # nextLine'을 호출해야하는'Scanner.nextInt' 때문에 OP의 for 루프가 잘못되었음을 의미합니다. –

3

(< = B) 난 당신을 가정하고 방금 자바를 배우기 시작했습니다. 따라서이 솔루션을 편집하고 다음을 제안합니다. 괜찮 으면?

public static void main(String[] args) { 
     int b; 


     Scanner in = new Scanner(System.in); 

     System.out.println("Enter verifying number: "); 
     b = in.nextInt(); 
     //necessary to do due to Enter key pressed by user 
     in.nextLine(); 
     String s[] = new String[b]; 
     for (int i=0; i<b; i++) { 

      System.out.println("Enter a string: "); 
      s[i] = in.nextLine(); 

      // You can check at the same time if this is what you entered 
      System.out.println("I have received this sring: "+s[i]+"\n"); 
     } 
+0

네 ..이게 좋고 도움이 되네요. 정말 고마워요. – user4424606

5

당신이 ArrayList의를 배열

를 사용하지 않을 경우 다음 배열을 사용하여 정확히 입력의 수를 알고있는 경우 ArrayList를

List<String> inpupts = new ArrayList<String>(); 
    for (int i=0; i< b; i++) { 
     System.out.println("Enter a string: "); 
     inputs.add(in.nextLine()); 
    } 
+1

'<='문제 ('='없어야 함)를 수정하기 위해 답을 조금 업데이트했습니다. 나는 또한 'b'를 'size'로 이름을 바꿨다. 좀 더 서술 적이지만 주관적인 문제이므로 OP 코드에 사용 된 이름으로 다시 편집 할 수있다. (OK nvm Luiggi가 돌 보았다 : D). – Pshemo

+0

모든 수정을 주셔서 감사합니다 :) –

+0

nextLine()이 스캐너 위치를 다음 줄로 이동시키고 값을 a로 반환하기 때문에 "in.nextLine();"대신 "in.next()"가되어서는 안됩니다. 문자열, 그래서 "문자열 입력 :"사용자가 자신의 입력을 줄 수 있기 전에 두 번 인쇄되기 때문에 1 입력 만 찍은 것입니다. – Ghos3t