2011-05-10 46 views
0

我需要將此字符串轉換爲POJO。請電話我,我怎麼能做到這一點序列化..字符串到POJO

這只是一個例子

Anne12F02PhysicsPassChemistryPassFirstClass 

這是字符串..現在我需要將它轉換爲POJO

我的POJO看起來像這樣

Class student {  
    String Name; 
    int age; 
    char sex; 
    List<Subject> subList; 
    String classiness; 
} 

Class subject { 
    String subject; 
    String result; 
} 

這只是一個例子。

02中的字符串表示列表的大小。

注:: 並且還每個屬性的長度是預定義的(例如..名稱10個字符..如果只有5個字符的名稱,然後空格被附加)

該列表可以再次包含一個列表,長度將被標記爲

回答

0

您需要在字符串上使用子字符串來獲取所有不同的元素。然後,您需要使用Integer.parseInt和類似的函數將字符串轉換爲您需要的類型,然後使用計算的變量構建POJO。另外,如果其中一個元素是一個列表(它是),那麼您將需要創建一個ArrayList並添加每個元素,具體取決於需要解析的列表大小。

因此,樣品將是(假設您輸入字符串被稱爲toPojo

String name = toPojo.substring(0, 10); 
int age = Integer.parseInt(toPojo.substring(10, 12)); 

由於這是功課,嘗試完成其餘的關...

編輯:跟進

要得到清單,請做類似

// get size of list and loop from zero to the size of the list 
// find the index of the first item in the list 
// int index = startIndex + loop*itemLength 
// toPojo.substring(index, index+sizeOfElement); 
+0

嗨,多數民衆贊成罰款。但是當我有列表,其大小各不相同,那麼我該如何使用子。我的意思是說作爲列表的長度變化,我如何從中找到索引我需要得到下一個屬性值 – Vineet 2011-05-10 18:31:32

+0

參見後續示例 – Codemwnci 2011-05-10 18:57:42

0

如果長度的屬性是預定義的,您可以使用方法String.substring(int, int)來檢索每個屬性,然後使用解析的值創建POJO。像下面的代碼片段:

String input = "Anne12F02PhysicsPassChemistryPassFirstClass"; 

String name = input.substring(0, NAME_LENGTH); // name length is predefined 
String age = input.substring(NAME_LENGTH, NAME_LENGTH + AGE_LENGTH); 

// and so on 

Student s = new Student(name, Integer.parseInt(age)); 
0

如果你的字符串具有可變長度,你可能要寫入字符串本身之前字符串的長度,或使用的字段之間的分隔符的一些,比如逗號或管道字符。