madam, nurses run 처럼 앞에서 읽으나 뒤에서 읽으나 똑같은 단어나 문구를 palindrome(회문)이라고 한다.
String A가 주어지면 회문일 때 Yes, 아니면 No를 프린트해주면 된다.
public class StringReverse {
public static void main(String[] args) {
// 문자열
String str = "ABCDE";
// 문자열 reverse
String reverse = "";
for (int i = str.length() - 1; i >= 0; i--) {
reverse = reverse + str.charAt(i);
}
// 결과 출력
System.out.println(reverse); // "EDCBA"
}
}
반복문을 사용해 원본 문자열(str)을 가장 마지막 인덱스의 글자부터 읽어서
reverse 문자열에 하나씩 이어붙인다.
public class StringReverse {
public static void main(String[] args) {
// 문자열
String str = "ABCDE";
// 문자열 reverse
StringBuffer sb = new StringBuffer(str);
String reverse = sb.reverse().toString();
// 결과 출력
System.out.println(sb); // "EDCBA"
System.out.println(reverse); // "EDCBA"
}
}
StringBuffer sb = new StringBuffer(str)
stringBuffer 클래스는 String을 다루는 클래스다.
생성자의 파라미터로 문자열을 입력받을 수 있다.
String reverse = sb.reverse().toString();
StringBuffer 클래스의 reverse() 메서드는 자신을 호출한 객체(예제에서는 sb)의 문자열을
거꾸로 뒤집어서 db객체의 reference를 리턴한다.
이렇게 리턴된 StringBuffer 객체를 toString() 메서드를 사용해 String으로 변환해 준다.
그 결과 sb객체와 reverse() 메서드가 리턴한 reverse의 문자열도 뒤집히게 된다.
기본형 변수인 char는 단 한 글자만 저장할 수 있는 반면, scanner로 입력을 받을 때는 String 타입으로밖에 받을 수 없다. 그래서 등장한 것이 charAt() 메서드다.
이 메서드를 사용하면 String으로 저장된 문자열 중에서 한 글자만 선택해 char타입으로 변환해 준다.
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String A=sc.next();
/* Enter your code here. Print output to STDOUT. */
StringBuffer sb = new StringBuffer(A);
if (A.equals(sb.reverse().toString())) {
System.out.println("Yes");
} else {
System.out.println("No");
}
}
}