문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
• str은 길이 1 이상인 문자열입니다.
s | return |
---|---|
"Zbcdefg" | "gfedcbZ" |
class Solution {
public String solution(String s) {
String answer = "";
char[] arr = s.toCharArray();
Arrays.sort(arr);
StringBuilder sb = new StringBuilder(new String(arr));
answer = sb.reverse().toString();
return answer;
}
}
Arrays.sort()
메서드로 오름차순 정렬.String str = new String(charArr);
reverse()
메서드를 사용하여 다시 역순으로 정렬.toString()
메서드 사용.class Solution {
public String solution(String s) {
return Stream.of(s.split(""))
.sorted(Comparator.reverseOrder())
.collect(Collectors.joining());
}
}
spilit(””)
메서드 사용, 문자열 배열로 만든 후 Stream 생성.sorted()
메서드에 파라미터를 추가하여 내림차순 정렬.joining()
메서드로 문자열 배열을 하나의 문자열로 합침.joining()
메서드의 return타입은 String.StringBuilder와 StringBuffer에 대해서도 따로 포스팅을 해야겠다!!!
개념은 잘 알고있지만 뭔가 활용은 잘 안되는ㅎㅎㅎㅎㅎ
또 스트림을 사용하다보면 어쩔때는 Stream.of()로 스트림을 생성하고,
또 어쩔때는 Arrays.stream()으로 스트림을 생성하는데,
이 둘의 차이에 대해서도 정리를 쫌 해봐야겠다ㅠㅋㅋㅋㅋㅋ
약간의 차이가 자꾸만 날 궁금하게 해,,🤓