2014-03-02 5 views
0

다음은 내가 풀려고하는 질문입니다. 출력으로 Vector을 반환해야하지만 주소는 Vector입니다. 코드에서 내가 뭘 잘못했는지 알 수 없습니다.벡터 출력을 얻으려면 어떻게해야합니까?

문자열이 주어지면 para에있는 모든 고유 번호로 구성된 Integer 벡터를 반환합니다. 문자열의 숫자는 공백으로 구분됩니다. 파라가 “88 99 22 33 44 55 88 22 55 100″ 경우, 출력 벡터는 숫자로 구성 - 88,99,22,33,44,55,100

public class Numbers { 

    public String num; 

    public Numbers(String splitArray){ 
     this.num=splitArray; 
    } 
} 


import java.util.Vector; 

public class DistinctNumbersInStrings { 

    public static Numbers[] distinctNumbersInStrings(String str) { 
     String[] splitArray = str.split(" "); 
     Numbers[] number = new Numbers[splitArray.length]; 

     for (int i = 0; i < splitArray.length; i++) { 
      number[i] = new Numbers(splitArray[i]); 
     } 
     return number; 
    } 

    public static void main(String[] args) { 
     Numbers[] number = distinctNumbersInStrings("99 88 77 66 55 44 33 22 11"); 
     Vector v= new Vector(10); 
     v.addElement(number); 
     System.out.println(v); 
    } 
} 
+4

왜 2014 년에 '벡터'가 필요합니까? 'Vector'를 사용해야하는 API를 사용하지 않는다면 사용하지 마십시오! – fge

+0

Sry하지만 이것 만 사용해야합니다. –

+0

'벡터'를 인쇄하고 있습니다. 그게 당신이'toString()'메소드에서 얻은 것입니다. 그것이 당신이 원하는 것이 아니라면, 뭔가 다른 것을해야합니다. –

답변

4

문제는 사용자가 벡터 요소로 Numbers을 추가하는 것입니다. 난 당신이 모든 숫자를 추가 할 생각 :

Vector v= new Vector(10); 

for (Numbers n : numbers) { 
    v.addElement(n); 
} 
System.out.println(v); 

그건 그렇고, 내가 당신이라면 그것은 단지 하나의 수를 나타냅니다으로, 내가 Number로 클래스 이름 Numbers을 변경합니다. 다음과 같이 입력하십시오 :

public class Number { 

    private String number; 

    public Number(String number){ 
     this.number = number; 
    } 

    public String toString() { 
     return this.number; 
    } 
} 
+0

감사합니다. ur 도움을 많이 ... –

0

내 게시물을 수정. 이것도 작동합니다.

public class DistinctNumbersInStrings { 
    public static Numbers[] distinctNumbersInStrings(String str){ 
     String[] splitArray = str.split(" "); 
     Numbers[] number = new Numbers[splitArray.length]; 
     for (int i = 0; i < splitArray.length; i++){ 
      number[i] = new Numbers(splitArray[i]); 
     } 
     return number; 
    } 

    public static void main(String[] args){ 
     Numbers[] number = distinctNumbersInStrings("99 88 77 66 55 44 33 22 11"); 
     Vector<String> v = new Vector<String>(); 
     for(Numbers n : number){ 
      v.addElement(n.num); 
     } 
     System.out.print(v); 
    } 
} 
+0

예, 시도했습니다 동일한 출력 –

+0

@BrianRoach'vtoString()'은 문자열을 반환합니다! –

+0

@ AlvinBunk 당신이'println()'에 객체를 넘겨 주면 그것은 ** 정확히 무슨 일이 일어날 지 **; 객체의'toString()'메소드가 호출된다. –

1

그런 식으로 시도해보십시오.

public static void main(String[] args){ 
     Numbers[] number = distinctNumbersInStrings("99 88 77 66 55 44 33 22 11"); 
     Vector v= new Vector(10); 
     v.addElement(number); 
     displayAllNumbers(number); 
    } 

    private static void displayAllNumbers(Numbers[] number) { 
     for(int i=0;i<number.length;i++) 
     { 
      if(i!=number.length-1) 
      System.out.print(number[i].num + ","); 
      else 
       System.out.print(number[i].num); 
     } 
     System.out.println(); 
    } 

또는 그렇게하십시오.

public static void main(String[] args){ 
     Numbers[] number = distinctNumbersInStrings("99 88 77 66 55 44 33 22 11"); 
     Vector<Numbers> v= new Vector<Numbers>(10); 
     for(Numbers n : number) 
     { 
      v.add(n); 
     } 
     for(Numbers n : v){ 
      System.out.print(n.num); 
     } 
     System.out.println(); 
    } 
+0

정말 고마워요. –

+0

친절한 말을위한 Thansk. 내가 당신을 도운다면 그 대답을 받아 들여주세요, 미리 감사드립니다. – RMachnik

+0

당신이 원하는 것이 맞습니까? 각 고유 번호에 대해 하나의 항목 대신'벡터 '항목에 하나의 항목 만 갖습니다. – Trein

관련 문제