자바 문자열 내림차순으로 배치하기 관련질문
-
게시물 수정 , 삭제는 로그인 필요
public class ReverseStr {
public String reverseStr(String str) {
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
for (int j = i + 1; j < chars.length; j++) {
if (chars[i] < chars[j]) {
char temp;
temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
}
}
return new String(chars);
}
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println(rs.reverseStr("Zbcdefg"));
}
}
실행결과 : gfedcbZ
문제 : str에 나타나는 문자를 큰것부터 작은순으로 정렬해 새로운 String을 반환해라.
str은 영문대소문자로만 구성됐고 대문자는 소문자보다 작은것으로 간주.
이 코드안에서
if (chars[i] < chars[j]) {
char temp;
temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
이 부분이 이해가 되질않습니다.
문자마다 문자 고유의번호가 있어서 크고 작음을 비교할 수 있다고 알고있는데요.
이해가안되는부분은 chars배열에 i 와 j 를 넣고 그값이 i 가 j 보다 작을때
temp에 chars[i] 값을넣고
chars[i]에 chars[j]를 넣고
chars[j]에 temp를 넣는다고 되어있는데요
이게 대체 무슨말인가요,,,
전문가님들의 고견이 필요합니다... 하트
public class ReverseStr {
public String reverseStr(String str) {
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
for (int j = i + 1; j < chars.length; j++) {
if (chars[i] < chars[j]) {
char temp;
temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
}
}
}
return new String(chars);
}
public static void main(String[] args) {
ReverseStr rs = new ReverseStr();
System.out.println(rs.reverseStr("Zbcdefg"));
}
}
if (chars[i] < chars[j]) {
char temp;
temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
#자바 문자열 자르기 #자바 문자열 비교 #자바 문자열 #자바 문자열 길이 #자바 문자열 뒤집기 #자바 문자열 배열 #자바 문자열 포함 #자바 문자열 합치기 #자바 문자열 정렬 #자바 문자열 입력