我怎样才能获得矢量输出?

时间:2014-03-02 16:09:40

标签: java arrays object

以下是我想要解决的问题。我必须返回Vector作为输出,但它返回Vector地址。我无法在代码中找出我做错了什么。

给定一个字符串,返回一个Integer向量,该向量由para中的所有不同数字组成。字符串中的数字用空格分隔。如果para是“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);
    }
}

3 个答案:

答案 0 :(得分:4)

问题是您要添加Numbers作为向量的元素。我想你想要添加所有数字:

Vector v= new Vector(10);

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

顺便说一句,如果我是你,我会将你的班级名称Numbers更改为Number,因为它只代表一个号码。类似的东西:

public class Number {

    private String number;

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

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

答案 1 :(得分: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();
   }

答案 2 :(得分: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);
    }
}