2017-03-01 4 views
0

이것은 자바 명령 줄 인수에 대한 코드입니다.하지만이 명령문은 작동하도록하고 있지만 그렇게 할 수는 없습니다.자바 명령 줄 변환

메인 메서드와 다른 클래스 메서드를 포함하는 클래스를 작성해야합니다 (이 클래스에는 두 가지 클래스 메서드가 있습니다).

main 메소드는 다른 클래스 메소드를 호출하고 인수로 3 개의 명령 행 인수를 double로 변환합니다.

클래스 메서드는 3 개의 중간 번호를 특정 출력 형식으로 반환합니다.

사용자가 세 개의 숫자를 입력하면 아래의 숫자 클래스로 출력됩니다.

이것은 내 첫 번째 클래스이며이 숫자라고합니다 : 이것은 중동 및라는 내 두 번째 클래스가이 위에서 숫자 클래스와 연결하도록되어있다

// import java.util.Scanner; 
    // import java.util.Arrays; 
    // import java.util.List; 
    // import java.util.ArrayList; 

    public class Numbers { 

     public Numbers() { 
     } 

     public static void main (String[] args) { 
      Middle.main(args); 
     } 
    } 

을 그리고 배열 이중 인수를 보내야합니다 사용자가 입력 한 다음 저장되어 Numbers 클래스로 다시 출력됩니다.

public class Middle{ 

public void Middle() 
{ 
} 

public static void main(String[]args) 
{ 
    double num, i, j, temp; 

    double a,b,c; 
    a = Double.parseDouble(args[0]); 
    b = Double.parseDouble(args[1]); 
    c = Double.parseDouble(args[2]); 

    //USE COLLECTIONS.SORT OR BUBBLESORT 

    num = input.nextDouble(); 

    int array[] = new int[num]; 

    for (i = 0; i < num; i++) 
    array[i] = input.nextInt(); 

for (i = 0; i < (num - 1); i++) 
{ 
    for (j = 0; j < num - i - 1; j++) 
    { 
    if (array[j] > array[j+1]) 
    { 
     temp = array[j]; 
     array[j] = array[j+1]; 
     array[j+1] = temp; 
    } 
    } 
} 
    for (i = 0; i < num; i++) 
    System.out.println(array[i]); 


    if(args.length ==3) 
    { 
    System.out.println(b + " is between " + a + " and " + c); 
    } 
    else 
    { 
    System.out.println("Error");  
    } 
} 

}

내 프로그램을 테스트 BlueJ의 사용, 명령 줄 인수는 큰 따옴표 안에 브라켓 내부에 입력하고 있는지, 즉, { "5", "6.3"하고, "3 "}.

그러나 bubblesort를 사용했지만 계속 오류가 발생하면 심볼 메서드 nextDouble()을 찾을 수 없습니다.

어떤 조언이 도움이 될만한 것이 아니라면 bubblesort를 사용하는 방식이 올바른지 확인하십시오.

+0

여기에는 실제 논리가 없습니다. 만약'if' 조건이'args.length == 3 '으로 고정 되었다면, 중간 번호가 무엇이든간에 출력 할 것이고 그것이 첫 번째와 마지막 숫자 사이에 있다고 주장 할 것입니다. 즉, 어떤 종류의 결과물을이 프로그램에 제공하고 있으며 어떤 결과물을 얻고 있습니까? – Makoto

+0

자바에 인수를 전달하는 방법이 아닙니다. 'java -cp. Numbers 5 6.3 3' –

+1

* 내 코드가 작동하지 않는 것 같습니다. *. 너무 애매한 설명입니다. 자신이하는 일, 일어날 것으로 예상되는 일 및 대신 일어나는 일을 정확히 말해주십시오. –

답변

0

주 메소드에 주어진 문자열 배열 인수는 공백으로 입력을 자동으로 구분하므로 String [] args.length = 3 예를 들어 5.7 8.6 22와 같이 입력해야합니다. 또한 프로그램에 두 가지 주요 메소드가 있으므로 프로그램 중 하나가 "main"으로 표시되어서는 안됩니다.

0

String[] args은 공백으로 분리 된 인수로 구성됩니다. 따라서 원하는 인수는 5 6.3 3이어야하며 {"5","6.3","3"}이 아야합니다.

System.out.println(Arrays.toString(args));을 사용하여 실제로 args가 어떻게 생겼는지 파악하십시오.