Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 JShell에서 문자열이 회문(팰린드롬)인지 확인하는 방법

Java 9의 JShell이란?

JShell은 Java 9에 처음 도입된 REPL(Read-Evaluate-Print-Loop) 대화형 도구입니다. 개발자가 입력한 선언문, 구문, 표현식을 즉시 평가하고 그 결과를 바로 화면에 보여주며, 명령줄 프롬프트에서 간편하게 실행할 수 있습니다.

회문(Palindrome) 문자열이란?

회문(Palindrome)은 문자열을 거꾸로 뒤집어도 원래 문자열과 동일하게 유지되는 문자열을 의미합니다. 즉, 앞에서 읽으나 뒤에서 읽으나 같은 단어나 문장을 말합니다. 예를 들어 "LEVEL", "MADAM", "RACECAR" 등이 대표적인 회문입니다.

JShell에서 회문 확인하기

아래 예제에서는 JShell 도구를 사용하여 주어진 문자열이 회문인지 아닌지를 확인하는 과정을 보여줍니다. 문자열을 뒤에서부터 한 글자씩 읽어 새로운 문자열을 만든 뒤, equalsIgnoreCase() 메서드로 원본과 비교하는 방식입니다.

C:\Users\User>jshell
|  Welcome to JShell -- Version 9.0.4
|  For an introduction type: /help intro

jshell> String str="LEVEL";
str ==> "LEVEL"

jshell> String revstring="";
revstring ==> ""

jshell> {
...>      for(int i=str.length()-1; i>=0; --i) {
...>         revstring +=str.charAt(i);
...>      }
...>      System.out.println(revstring);
...>      if(revstring.equalsIgnoreCase(str)){
...>         System.out.println("String is Palindrome");
...>      } else {
...>         System.out.println("String is not Palindrome");
...>      }
...>   }
LEVEL
String is Palindrome

코드 설명

  • 변수 선언: 검사할 문자열을 담는 str과 뒤집힌 문자열을 저장할 빈 문자열 revstring을 선언합니다.
  • 역순 반복: for 루프를 사용해 문자열 끝(str.length()-1)부터 시작 인덱스(0)까지 역순으로 순회하며 각 문자를 charAt(i)로 가져와 revstring에 추가합니다.
  • 비교 및 출력: equalsIgnoreCase()로 대소문자를 구분하지 않고 두 문자열을 비교하여, 일치하면 "String is Palindrome"을, 그렇지 않으면 "String is not Palindrome"을 출력합니다.

실행 결과 "LEVEL"은 뒤집어도 "LEVEL"이므로 회문임을 확인할 수 있습니다. 이처럼 JShell을 활용하면 별도의 클래스 파일 작성 없이 코드 조각을 즉석에서 테스트할 수 있어 학습과 실험에 매우 유용합니다.