2011-05-10 5 views
0

이 문자열을 POJO로 변환해야합니다. Pls는 전화 나 나는이 그냥 예입니다이직렬화 .. POJO 문자열

을 할 수있는 방법을

Anne12F02PhysicsPassChemistryPassFirstClass 

이 .. 문자열입니다 지금은 POJO이 변환해야

내 POJO이

처럼 보인다
Class student {  
    String Name; 
    int age; 
    char sex; 
    List<Subject> subList; 
    String classiness; 
} 

Class subject { 
    String subject; 
    String result; 
} 

이것은 단지 예입니다.

02는 목록의 크기를 나타냅니다.

참고 : 또한 각 속성의 길이가 미리 정의 (예 ... 이름 5 문자가 이름이있는 경우, 다음 빈 공간이 추가됩니다 .. 10 개 문자)

목록 수도 다시 목록이 있으면 길이가 표시됩니다.

답변

0

모든 다른 요소를 가져 오려면 String에 하위 문자열을 사용해야합니다. 그런 다음 Integer.parseInt 및 유사한 함수를 사용하여 문자열을 필요한 유형으로 변환 한 다음 마지막으로 계산 된 변수로 POJO를 구성해야합니다.

또한 요소 중 하나가 목록 (있는 경우) 인 경우에는 구문 분석이 필요한 목록의 크기에 따라 ArrayList를 만들어 각 요소를 추가해야합니다.

따라서, 샘플이 될 것이다,이 같이

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

숙제이다 (당신의 입력 문자열이 toPojo라고 가정) 나머지를 마무리하려고 ...

편집 :

을 따라

목록을 얻으려면

// 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

+0

후속보기 참조 – Codemwnci

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

당신의 문자열이 가변 길이이있는 경우, 문자열 자체 전에 문자열 길이를 작성하거나 필드 사이에 구분 기호를 사용하는 것이 좋습니다는, 쉼표 나 파이프 라인 문자를 말한다.