以下是我想要解决的问题。我必须返回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);
}
}
答案 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);
}
}