CodeGym /Java Blog /무작위의 /Java에서 문자열 반전
John Squirrels
레벨 41
San Francisco

Java에서 문자열 반전

무작위의 그룹에 게시되었습니다

리버스 문자열이란 무엇입니까?

“마지막 문자부터 시작하여 첫 문자까지 문자열 읽기를 시작합니다. 빙고! 그것은 당신의 거꾸로 된 문자열이었습니다."
다음은 어떻게 보일지 보여주는 데모입니다.

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 루프를 사용하는 것으로 시작됩니다. 전통적인 반복 절차. 나중에 StringBuilderStringBuffer 와 같은 다른 클래스에서 제공하는 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의 StringBuilderStringBuffer 와 같은 다른 클래스에는 변경 가능하거나 변경할 수 있는 콘텐츠가 포함되어 있습니다. 루프 없이 문자열을 뒤집고 내장 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 에 직접 문자열을 전달할 수 있습니다 .

결론

이 게시물이 끝날 때쯤이면 문자열의 반전과 StringBuilder 및 StringBuffer의 다른 클래스를 사용하여 이를 달성하는 방법에 익숙해져야 합니다. 귀하의 편의에 따라 방법을 선택할 수 있습니다. 갇힌 느낌이들 때마다 자유롭게 타십시오. 그때까지 계속 연습하고 빛나세요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION