String(문자열) 다루기 - 0104. 단어 뒤집기
public static String solution(String str) {
char[] strArr = str.toCharArray();
str = "";
for(int j=1; j<strArr.length + 1; j++) {
str += strArr[strArr.length - j];
}
return str;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
for(int i=0; i<n; i++) {
String str = sc.nextLine();
System.out.println(solution(str));
}
}
public static String solution(String str) {
return new StringBuilder(str).reverse().toString();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
for(int i=0; i<n; i++) {
String str = sc.nextLine();
System.out.println(solution(str));
}
}
나의 풀이의 경우 문자열을 문자로 변환 후 배열을 뒤에서부터 접근하도록 하였다.
지금 생각해보니 배열로 바꾸지 않고 charAt()
메소드를 이용하면 코드를 더욱
간결하게 작성할 수 있을 것 같다.
강의에서는 StirngBuilder
클래스의 reverse()
메소드를 이용하였다.
new StringBuilder(str).reverse().toString();
// return 자료형이 String이기 때문에, toString()으로 변환
String
인스턴스는 Immutable
한 특징이 있다. 이는 불변을 의미한다.
즉, 처음 선언(생성)한 문자열은 바꿀 수 없으며 내용이 같은 문자열의 경우 하나의
인스턴스를 서로 공유한다.
StringBuilder
의 경우 append()
, delete()
등의 메소드를 통해 문자열을
수정할 수 있다.
따라서, 문자열의 수정이 많이 발생하는 경우 StringBuilder
의 사용이 메모리 사용
측면에서 유리하다.