Java에서 회문 문자열을 확인하는 방법은 무엇입니까?
4818 단어 javaprogrammingjavascript
소개
이 기사에서는 Java에서 문자열 palindrome을 찾을 수 있으며 정수와 동일하게 작동합니다. palindrome string의 의미는 오른쪽에서 왼쪽으로 또는 왼쪽에서 오른쪽으로 읽기 시작하면 두 경우 모두 동일하다는 것입니다.
연산
접근법 1
자바에서 문자열 회문을 확인하기 위해 문자열의 시작과 끝에서 하나씩 문자를 선택하고 서로 비교할 수 있습니다.
=> 문자열의 첫 번째 문자와 마지막 문자를 선택하고 비교하여 두 문자가 모두 일치하면 계속 진행합니다. 그렇지 않으면 문자열이 회문이 아닙니다.
=> 문자열의 첫 번째와 마지막에서 두 번째 문자를 선택하고 비교합니다. 둘 다 일치하면 계속합니다. 그렇지 않으면 문자열이 회문이 아닙니다.
=> 비교할 두 문자가 같거나 서로 인접할 때까지 위의 비교를 계속합니다.
접근법 2
문자를 처음부터 끝까지 비교하는 대신 주어진 문자열의 역방향 문자열을 찾아 두 문자열을 비교할 수 있습니다. 두 문자열이 같으면 문자열이 회문임을 의미합니다.
=> 주어진 문자열에서 문자 배열 가져오기
=> 끝에서 시작 인덱스까지 배열을 반복하여 문자열을 만듭니다.
=> 두 문자열에서 구분 기호, 쉼표 또는 기타 구분 기호 제거(선택 사항)
=> 마지막으로 두 문자열을 비교합니다.
예시
1. 루프를 사용하는 자바의 문자열 회문
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
System.out.print("Enter any string : ");
Scanner in = new Scanner(System.in);
String origString = in.nextLine();
String reverseString = "";
char[] characters = origString.toCharArray();
for( int i = characters.length - 1 ; i >= 0 ; i-- ) {
reverseString = reverseString + characters[i];
}
//Check palindrome string
if (origString.equals(reverseString)) {
System.out.println("String is a palindrome.");
} else {
System.out.println("String is not a palindrome.");
}
}
}
산출:
임의의 문자열 입력: 날씨
문자열은 회문이 아닙니다.
임의의 문자열 입력: 나만
문자열은 회문입니다.
예시
class Main {
public static void main(String[] args) {
String str = "Radar", reverseStr = "";
int strLength = str.length();
for (int i = (strLength - 1); i >=0; --i) {
reverseStr = reverseStr + str.charAt(i);
}
if (str.toLowerCase().equals(reverseStr.toLowerCase())) {
System.out.println(str + " is a Palindrome String.");
}
else {
System.out.println(str + " is not a Palindrome String.");
}
}
}
산출:
레이더는 회문입니다.
예시
스택 사용
import java.util.Scanner;
import java.util.Stack;
public class Main
{
public static void main(String[] args)
{
System.out.print("Enter the string : ");
Scanner in = new Scanner(System.in);
String origString = in.nextLine();
Stack<Character> stack = new Stack<>();
//Push all chars in stack
for (int i = 0; i < origString.length(); i++) {
stack.push(origString.charAt(i));
}
String reverseString = "";
//Pop all chars from stack one by one and build reverse string
while (!stack.isEmpty()) {
reverseString = reverseString + stack.pop();
}
//Check palindrome string
if (origString.equals(reverseString)) {
System.out.println("String is a palindrome.");
} else {
System.out.println("String is not a palindrome.");
}
}
}
산출:
문자열을 입력하십시오: 부인
문자열은 회문입니다.
예시
대기열 사용
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
System.out.print("Enter the string : ");
Scanner in = new Scanner(System.in);
String origString = in.nextLine();
Queue<Character> queue = new LinkedList<>();
for (int i = origString.length()-1; i >=0; i--) {
queue.add(origString.charAt(i));
}
String reverseString = "";
//Pop all chars from stack one by one and build reverse string
while (!queue.isEmpty()) {
reverseString = reverseString + queue.remove();
}
//Check palindrome string
if (origString.equals(reverseString)) {
System.out.println("String is a palindrome.");
} else {
System.out.println("String is not a palindrome.");
}
}
}
산출:
문자열을 입력하십시오: racecar
문자열은 회문입니다.
문자열 입력: java
문자열은 회문이 아닙니다.
결론
이 블로그에서 우리는 Java 문제에서 문자열 palindrome을 사용했습니다. 존재 복잡도의 명확화 문제에서 문자열 회문에 대한 두 가지 방법론을 검토했습니다.
우리는 진정으로 당신이 이 블로그를 정독하는 것을 기뻐한다고 믿고 싶습니다. Java에서 문자열 전환과 유사한 추가 문자열 문제를 평가하고, 숫자가 회문인지 확인하고, 주어진 두 문자열이 서로 동형인지 확인하고, 기본 문자를 앞에 추가하여 문자열 회문을 만들고, 기타 등등. Java에는 Java에 대한 전문 지식을 얻기 위해 초기 및 중간 수준에서 배울 수 있는 여러 개념이 있습니다. 자바의 최종 키워드, 자바스크립트 기본, oops 개념 등과 같은 일부 개념
Reference
이 문제에 관하여(Java에서 회문 문자열을 확인하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/akshays81992169/how-to-check-palindrome-string-in-java-222e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)