2013-01-12 2 views
-1

어떻게 Java에서 배열 문자열을 반환합니까? String에서 String []으로 변환 할 수 없다는 오류 메시지가 계속 표시되지만이를 시도하면 안됩니다. 나는 CS에 꽤 새로운데, 그래서 나는 완전히 확신하지 못합니다. 다음 스위치 문이 일치하지 않습니다 및 return ar가 실행되지 않습니다자바에서 문자열 [] 반환

public class questionOrder { 
    public String[] order(int x, String W, String X, String Y, String Z){ 
      String f = W; 
      String g = X; 
      String h = Y; 
      String j = Z; 

    switch(x){ 

     case 1: String[] ar = {f,g,h,j}; 
     return ar; 

    } 
    } 

} 
+2

글쎄, 당신은 아무것도 반환되지 않는 것 같습니다 case1을 사용하지 않을 경우 –

+1

switch 문을 사용할 때는 항상 기본값을 사용하십시오. – Srinivas

+2

* "나는 CS에 익숙하지 않다."* * - 잘 알아야 할 것은 코딩 표준을 따르는 것이 중요하다는 것입니다. 1) Java 클래스 이름은 대문자로 시작합니다. 2) Java 변수 및 매개 변수 이름은 소문자로 시작합니다. –

답변

5

x != 1 경우, 그래서 아무것도 함수에서 반환되지 않습니다 : 여기 내 클래스 파일입니다. StringString[]으로 변환하는 것에 대한 오류가 발생하는 이유가 확실하지 않지만 코드 스 니펫에 게시하지 않은 결과로 판단됩니다.

switch (x) { 
    case 1: 
     String[] ar = {f, g, h, j}; 
     return ar; 
    default: 
     return new String[0]; 
} 
+0

x가 1이 아닌 경우 아무 것도 반환하지 않을 것이라는 것을 알고 있습니다. 컴파일 오류를 본 직후에 사례를 추가하지 않았습니다. 나는 이클립스를 사용하고 있으며 정확한 에러는 "이 메소드는 String [] 타입의 결과를 반환해야한다"라고 말합니다. – user1971739

+0

@ user1971739 위 코드가 컴파일되므로 코드 조각에 오류가있는 행이 없으므로 OP로 편집하십시오. 설명하는 오류가있는 행 –

+1

@ user1971739 인용 한 메시지는 변환에 관한 것이 아니라 코드를 통해 일부 경로에서 필수 String [] 결과를 반환하지 않는 것에 대한 것입니다. –

0

내가 시도하고 실행 된이 예 참조 :

는 그것을 컴파일하기 위해 다음과 같은 추가

public class QuestionOrder { 
public String[] order(int x, String W, String X, String Y, String Z){ 
     String f = W; 
     int g = x; 
     // g.toString(); 
     String h1 = Integer.toString(g); 

     String h = Y; 
     String j = Z; 
    String[] ar=new String[] {f,h1,h,j};; 

return ar; 
} 



public static void main(String[] args) throws Exception{ 
    try{ 
QuestionOrder q=new QuestionOrder(); 
String[] str=q.order(2,"e","r","t","y"); 
for (int i=0;i<str.length ;i++) 
{ 
    System.out.println(str[i]); 
} 

}catch(Exception e){} } 

}