Java String을 정렬하기

이상진·2022년 6월 17일
0

DB에 저장된 값과 클라이어트에서 보낸 값을 정렬해서 비교하는 과정에서 클라이언트에서 들어오는 값이 순서가 뒤죽박죽인 채로 들어오는 경우가 있었다.
두 개의 값을 정확하게 비교하기 위해서 정렬해줄 필요가 있었다.

예시
DB에 저장된 값 "가,나,다"
클라이언트에서 넘어온 값 : "다,나,가"

하지만 Java에서는 String은 변경할 수 없다.
String이 생성 되면 메모리에서 문자열을 변경 할 수 없고, 단일 문자에 액세스 할 수 없다.

String 한글 = "다,나,가";
List sortedList = new LinkedList<>();
sortedList.add(한글);
Collections.sort(sortedList);
System.out.println(sortedList + "정렬된 리스트");

결과

List에 한글을 넣고 정렬을 해봐도
원하는 결과인 "가나다"가 나오지 않는 것을 볼 수 있다.

따라서 문자열을 CharArray로 바꿔서
ArraySort로 정렬을 해줘야 했다.

char[] StringToChar = 한글.toCharArray();
Arrays.sort(StringToChar);
String 정렬된한글 = new String(StringToChar);
System.out.println(정렬된한글);

결과

정렬이 잘 되었지만 앞에 ,,가 있어서 보기가 좋지 않았다.
이 상태로도 목적했던 값 비교는 가능하지만 정확한 비교를 위해 ,,를 제거해주도록 하자.

정렬된한글.replaceAll(",","")

결과

비교하기 좋게 결과가 나온것을 확인할 수 있다.

profile
Back-end Engineer

0개의 댓글