안녕하세요 정렬때문에 머리가 아픈 개발자입니다.
private ArrayList<String> rUnitAmt;
private ArrayList<String> rCpsName;
위와 같이 2개의 arraylist 를 선언하여 값을 넣었습니다. 그런데 rUnitAmt는 형은 string이지만 실제 값은 가격 정보를 나타내는
int형입니다.
그리고 리스트에 ArrayList<Inquiry>in = rUnitAmt.get(i)+rCpsName.get(i) 이런식으로 해서 또 하나의 arraylist를 만들게 됩니다.
그런데 여기서 문제가 Collections.sort(in); 요딴 식으로 정렬을 하면
가격 정보인 rUnitAmt가 string으로 인식을 하여 1100 보다 120이 더 큰 값으로 인식을 하여 순서가 잘 못 나오게 됩니다.
위와 같은 상태의 arraylist는 정렬을 어떻게 해야 하나요???
참고로 arraylist in의 값은 다음과 같이 나옵니다.
in(0) = 10000\가나다abc~~!!!!
in(0) = 12000\~~!!a!!나~~!!!!
위의 문제의 근본적인 원인은 Activity A에서 sax 파싱을 하여 그 값들 중에 특정 값들을 파싱하여서 Activity B에서
custum listview에 조합해서 보여주게 됩니다.
그런데 그 값을 Activity B에서 가격이나 시간정보 순으로 정렬을 하는 기능을 넣어야 하는데 문제입니다....
Activity A에서 아래와 같이 파싱을 하여 intent로 값을 넘겨 줍니다..
JSONObject obj = array.getJSONObject(i);
qUnitAmt.add(obj.getString("szUnitAmt"));
qCpsName.add(obj.getString("szCpsName"));
qTitle.add(obj.getString("szTitle"));
qTime.add(obj.getString("szRegDate"));
Activity B에서 저 arraylist 4개를 조합해서 리스트뷰에 뿌리는데 저 값들이 다 string이라서
가격정보를 가진 넘을 가지고 정렬을 해야 하는데 방법을 모르겠습니다.
\ 이전까지 String을 짤라서 비교하면 되지 않을까요?
charAt 으로 자리수가 같은 지 먼저 검사를 하고, 자리수가 같은 경우에는 1문자씩 비교를 하면 될 것 같은데..
그냥 제 생각은 그렇습니다 ^^;