2014-01-18 5 views
0

명령 행에서 입력을 허용하고 해당 입력을 배열에 저장하는 Java 프로그램을 작성해야합니다. for 루프는 입력을 거쳐 출력해야합니다.Java의 명령 행에서 입력 받기

내 코드는 지금까지 있습니다 :

public class HelloName{  
    public static void main(String args []){  
     for(int i = 0; i < args.length ; i++) {  
       System.out.print("Hello " + args[i]);    
     } 
} 

난 데 문제는 하나 개 이상의 입력이 입력 될 때, 그것은 두 번에 "Hello"가 표시됩니다 있다는 것입니다. java HelloName John Doe를 작성하는 예를 들어

, 나 줄 것이다 : 나는 단순히 싶습니다

Hello John Hello Doe 

는 이름이 John Doe 님 안녕하십니까에 결합하는 얻는 방법을 알고.

+5

그게 전부가 될 것" 귀하의 루프 – kmera

+0

각 인수마다 매번 인쇄되는 이유를 생각해보십시오. –

답변

3

이 시도 : 당신은 루프를 입력 한 후 현재 IDEOne에 수정 된 프로그램을 실행할 수 args[]

public class HelloName{ 

    public static void main(String args []){ 
     System.out.println("Hello "); 
     for(int i = 0; i < args.length ; i++) { 

       System.out.print(args[i] + " "); // see the difference ? 

     } 
    } 

를 반복하기 전에 따라서, 당신은 Hello

를 인쇄 Hello을 반복 얻을 :

public static void main(String args []){ 
    System.out.print("Hello "); 
    for(int i = 0; i < args.length ; i++) { 
     System.out.print(args[i] + " "); 
    } 
    System.out.println(); 
} 

코드 안쪽에 있기 때문에 각 인수에 hello 코드가 인쇄되었습니다. 당신의 루프.

1

println()Hello을 추가했기 때문입니다. 그것을 지우면 좋을 것입니다.

모든 반복마다 Hello 다음에 args[] 배열의 i 요소가 인쇄됩니다. http://ideone.com/oriBtP

0

두 단어 사이의 공백은 입력 인수에 대한 구분 기호로 취급됩니다. 따라서 John Doe는 2 개의 인자로 취급되며 결과를 얻습니다.

"John Doe"와 같이 공백이있는 이름 하나만 입력하려는 경우 입력 매개 변수 형식을 변경해야합니다. 그래서 같은 프로그램을 유지,이에 호출을 변경 : 안녕하세요 "내부

자바 HelloName"홍길동 ","아담 스미스 (Adam Smith)는 "당신이 인쇄 때문에

귀하의 출력은 다음

Hello John Doe 
Hello Adam Smith 
관련 문제