문자열을 반대로 출력하는 메서드 만들기
public String solution(String my_string) {
char[] my_char = my_string.toCharArray();
for (int i = 0; i < my_char.length; i++) {
my_char[i] = my_string.charAt(my_char.length -i - 1);
}
String answer = new String(my_char);
return answer;
}
받은 문자열을 char[]로 변환해 각 글자를 반복문으로 수정하고 다시 string으로 변환해 반환하는 방식을 택했다.
찾아보니 StringBuilder, StringBuffer 등의 reverse 메서드를 사용하면 쉽게 풀 수 있는 문제였다.
그 외에도 각 글자를 ""와 split메서드를 통해 쪼개서 재배열하는 방법도 있었고, 빈 문자열에 my_string의 글자를 하나씩 더해주는 방법도 있었다.
String answer = "";
String[] arr = my_string.split("");
for(int i=arr.length-1; i>=0; i--){
answer += arr[i];
}
return answer;
이 방법이 특히 마음에 들었었다. (for반복문에 감소연산자를 사용하는 방법이 신선해서)
가위(2)바위(0)보(5)를 이기는 문자열을 출력하는 메서드
String[] rspStrings = rsp.split("");
String answer = "";
for (int i = 0; i < rsp.length(); i++) {
if (rspStrings[i].equals("0")) {
answer += "5";
} else if (rspStrings[i].equals("2")) {
answer += "0";
} else if (rspStrings[i].equals("5")) {
answer += "2";
}
}
return answer;
}
위 문제에서 영감을 얻어 잘 안썼던 메서드인 split을 한 번 써보자 싶어서 사용해봤다.
다른 답안들은 StringBuilder나 stream을 쓴 차이를 빼면 크게 다른 점은 없었던 것 같다.