2013-11-23 143 views
0

我無法將字符串解析爲對象。 我希望能夠採取一個字符串,如:「約翰史密斯1234」和解析到一個人對象(人(字符串,字符串,int))將字符串解析爲對象

爲此,我第一次嘗試將字符串轉換爲一個String []並在空格處分割。 我想不通這是爲什麼不working-我試圖測試方法僅這一部分,我得到這個:[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

我想不通這是爲什麼不工作

你應該換你的任務:

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)); 
2

看起來你已經交換了作業。嘗試這個。

first = splitArray[0]; 
last = splitArray[1]; 
ID = splitArray[2]; 

你沒有得到你想要,但因爲你應該使用Arrays.toString(splitArray)輸出陣列的輸出:

import java.util.Arrays; 

System.out.println(Arrays.toString(splitArray)); 
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)); 
}