将字符串解析为对象

时间:2013-11-23 18:18:22

标签: java string parsing split

我在将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));
}

谢谢!

3 个答案:

答案 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));
}