이전에 했던 내용을 바탕으로 answer에 문자 하나씩 더해주면 큰 어려움은 없었다.
for문으로 반복하다가 i와 num1 혹은 num2가 같아지면 저장해뒀던 값으로 바꿔주면 그만인 것이다.
그런데 다른 사람의 풀이를 보다가 valueOf라는 것을 보게 되었다.
이건 다양한 형태의 변수를 문자열 형태로 바꾸어야 하는 경우 사용 할 수 있는 매서드이다.
예를 들어
boolean flag = true;
String flagS = String.valueOf(flag); --> 문자열 true 출력
이라는 결과를 얻을 수 있다.
(생각해보니 이거 메서드를 불러올 필요도 없이, 간단하게 "" 를 더하면 되잖아?)
오우! 더하지 않아도 문자열을 만들 수 있다니 당장해봤다.
코드가 간결해졌다.
한가지 보완할 점은
str[num1]=my_string.charAt(num2);
str[num2]=my_string.charAt(num1);
이라고 썼다면 한층 더 간결해졌을 것!
import java.io.ObjectInputStream.GetField;
public class CoTe_10 {
public static void main(String[] args) {
String answer = "";
String my_string="I love you";
int num1=3;
int num2=6;
char[] str = my_string.toCharArray();
char tmp = str[num1];
str[num1]=str[num2];
str[num2]=tmp;
answer=String.valueOf(str);
System.out.println(answer);
}
}
이건 처음 풀이
char tmp1 = my_string.charAt(num1);
char tmp2 = my_string.charAt(num2);
for (int i=0;i<my_string.length();i++) {
if (i==num1) {
answer += tmp2;
}
else if (i==num2) {
answer += tmp1;
}
else {
answer += my_string.charAt(i);
}
}