我在将String解析为对象时遇到问题。 我希望能够获取一个字符串,如:“John Smith 1234”并将其解析为Person对象(Person(String,String,int))
为此,我首先尝试将String转换为String []并在空格处分割。 我无法弄清楚为什么这不起作用 - 我尝试测试方法的这一部分而且我得到了这个:[Ljava.lang.String; @ 1aa8c488
这是我的代码:
public static Person parseToPerson(String s) {
String first = "";
String last = "";
String ID = "";
String[] splitArray = s.split("\\s+");
splitArray[0] = first;
splitArray[1] = last;
splitArray[2] = ID;
System.out.println(splitArray);
return new Person(first, last, Integer.parseInt(ID));
}
谢谢!
答案 0 :(得分:3)
我无法弄清楚为什么这不起作用
你应该交换你的作业:
first = splitArray[0];
last = splitArray[1];
ID = splitArray[2];
我试过测试方法的这一部分,我得到了这个: [Ljava.lang.String; @ 1aa8c488
由于splitArray
是一个数组,因此您可以看到数组本身的字符串表示形式,而不是它的内容。使用Arrays.#toString(java.lang.Object[])
:
System.out.println(Arrays.toString(splitArray));
答案 1 :(得分:2)
看起来你已经交换了作业。试试这个。
first = splitArray[0];
last = splitArray[1];
ID = splitArray[2];
你没有得到你想要的输出,因为你应该使用Arrays.toString(splitArray)
来输出数组:
import java.util.Arrays;
System.out.println(Arrays.toString(splitArray));
答案 2 :(得分:0)
public static Person parseToPerson(String s) {
String first = "";
String last = "";
String ID = "";
String[] splitArray = s.split("\\s+");
first = splitArray[0];
last = splitArray[1];
ID = splitArray[2];
System.out.println(splitArray);
return new Person(first,last, Integer.parseInt(ID));
}