리버스 문자열이란 무엇입니까?
Input String = "X Y Z";
Output String = "Z Y X"
Input String = "1 2 3";
Output String = "3 2 1";
Input String = "I love Java!";
Output String = "!avaJ evol I";
Java에서 문자열을 뒤집는 방법은 무엇입니까?
Java에서 문자열을 뒤집는 방법에는 여러 가지가 있습니다 . 그러나 Java는 String 클래스 에 대해 reverse() 메서드를 제공하지 않습니다 . 순진한 접근 방식은 for 루프를 사용하는 것으로 시작됩니다. 전통적인 반복 절차. 나중에 StringBuilder 및 StringBuffer 와 같은 다른 클래스에서 제공하는 reverse() 메서드를 사용하여 빌드할 수 있습니다 .방법 1 - 구식 반복 방식
public class StringReversal {
public static String reverseInputString(String myString) {
if (myString == null)
return myString;
String reverseString = "";
for (int i = myString.length() - 1; i >= 0; i--) {
reverseString = reverseString + myString.charAt(i);
}
return reverseString;
}
public static void main(String[] args) {
String myString1 = "X Y Z";
System.out.println("reverse(" + myString1 + ") = " + reverseInputString(myString1));
String myString2 = "1 2 3";
System.out.println("reverse(" + myString2 + ") = " + reverseInputString(myString2));
String myString3 = "I LOVE JAVA!";
System.out.println("reverse(" + myString3 + ") = " + reverseInputString(myString3));
String myString4 = "My favourite place to learn Java is CodeGym.";
System.out.println("reverse(" + myString4 + ") = " + reverseInputString(myString4));
String myString5 = "My name is Lubaina Khan.";
System.out.println("reverse(" + myString5 + ") = " + reverseInputString(myString5));
// Boundary Case to see what happens if a String is null
String myString6 = null;
System.out.println("reverse(" + myString6 + ") = " + reverseInputString(myString6));
// Boundary Case to see what happens if a String is empty
String myString7 = "";
System.out.println("reverse(" + myString7 + ") = " + reverseInputString(myString7));
}
}
산출
reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(I LOVE JAVA!) = !AVAJ EVOL I reverse(내가 가장 좋아하는 Java 학습 장소는 CodeGym입니다.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM reverse(My name is Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =
설명
public static String reverseInputString(String myString) { ... }
reverseInputString 메서드는 myString 이라는 입력 문자열을 사용합니다 .
if (myString == null)
return myString;
입력 문자열 , 즉 myString 이 null인지 확인하십시오. null이 발견되면 입력을 그대로 반환합니다. 더 이상 진행할 필요가 없습니다. 오류를 방지하기 위해 이를 경계 케이스 처리라고 합니다.
String reverseString = "";
출력을 저장할 빈 문자열을 선언합니다.
for (int i = myString.length() - 1; i >= 0; i--) {
reverseString = reverseString + myString.charAt(i);
}
일반 for 루프를 사용하십시오. 입력 String 의 마지막 인덱스에서 반복자 i 를 초기화합니다 . 입력 문자열의 마지막 인덱스에 액세스하여 출력 문자열에 저장합니다. 0번째 인덱스 또는 입력 문자열의 시작 부분에 도달할 때까지 계속 반복합니다.
return reverseString;
reverseString 을 반환 하고 요구 사항에 따라 사용하십시오.
방법 2 - String Builder 클래스 사용
Java에서는 초기화된 문자열 의 내용을 변경할 수 없습니다. 따라서 String 에 사용할 수 있는 reverse() 메서드가 없습니다 . 그러나 Java의 StringBuilder 및 StringBuffer 와 같은 다른 클래스에는 변경 가능하거나 변경할 수 있는 콘텐츠가 포함되어 있습니다. 루프 없이 문자열을 뒤집고 내장 StringBuilder 또는 StringBuffer 클래스를 사용하려면 아래 예를 살펴보겠습니다.
public class StringBuilderReversal {
public static void main(String[] args) {
String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
String input2 = "0 1 2 2 3 3 3";
StringBuilder inputText2 = new StringBuilder(input2);
System.out.println("reverse(" + inputText2 + ") = " + inputText2.reverse());
String input3 = "Monday";
StringBuilder inputText3 = new StringBuilder(input3);
System.out.println("reverse(" + inputText3 + ") = " + inputText3.reverse());
String input4 = "I love CodeGym!";
StringBuilder inputText4 = new StringBuilder(input4);
System.out.println("reverse(" + inputText4 + ") = " + inputText4.reverse());
// ReverseString using the StringBuilder class
StringBuilder inputText5 = new StringBuilder("Reverse this String using StringBuilder Class.");
System.out.println("reverse(" + inputText5 + ") = " + inputText5.reverse());
// ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
System.out.println("reverse(" + inputText6 + ") = " + inputText6.reverse());
}
}
산출
reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(월요일) = yadnoM reverse(I love CodeGym!) = !myGedoC evol I reverse(StringBuilder 클래스를 사용하여 이 문자열 반전 .) =.
설명
String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
입력 문자열을 반전하려면 StringBuilder 로 변환해야 합니다 . 이를 위해 입력 문자열을 StringBuilder 생성자 에 전달합니다 .
System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
String 을 StringBuilder 로 변환한 후 반전을 가져오고 출력을 인쇄할 수 있습니다.
// ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
또는 StringBuilder 또는 StringBuffer 에 직접 문자열을 전달할 수 있습니다 .
GO TO FULL VERSION