>Java >java지도 시간 >Java 문자열 리터럴을 이스케이프 해제하는 방법은 무엇입니까?

Java 문자열 리터럴을 이스케이프 해제하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-22 17:51:10982검색

How to Unescape Java String Literals?

Java에서 Java 문자열 리터럴을 이스케이프 해제하는 방법

Java는 문자열 리터럴을 이스케이프 해제하는 간단한 기능을 제공하지 않습니다. 이 작업을 수행하려면 문자 이스케이프 시퀀스를 해당 문자로 수동으로 변환해야 합니다.

일반적인 문자 이스케이프

Escape Sequence Character
Backslash
n Newline
r Carriage return
t Tab
b Backspace
f Form feed
" Double quote
' Single quote

문자열 리터럴 이스케이프 해제

문자열 리터럴을 이스케이프 해제하는 한 가지 접근 방식은 문자열을 반복하는 사용자 정의 함수를 사용하는 것입니다. 이스케이프 시퀀스를 식별하고 이를 적절한 문자로 바꿉니다.

public static String unescape(String str) {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        if (c == '\') {
            i++;
            switch (str.charAt(i)) {
                case 'n':
                    sb.append('\n');
                    break;
                case 'r':
                    sb.append('\r');
                    break;
                case 't':
                    sb.append('\t');
                    break;
                case 'b':
                    sb.append('\b');
                    break;
                case 'f':
                    sb.append('\f');
                    break;
                case '\"':
                    sb.append('\"');
                    break;
                case '\'':
                    sb.append('\'');
                    break;
                case '\':
                    sb.append('\');
                    break;
                default:
                    sb.append(c); // Unrecognized escape sequence
            }
        } else {
            sb.append(c);
        }
    }
    return sb.toString();
}

예:

String original = "\\"Hello, World!\\"";
String unescaped = unescape(original);
System.out.println(unescaped); // Output: "Hello, World!"

문자열 이스케이프 해제를 위한 라이브러리

일부 타사 라이브러리도 문자열 리터럴 이스케이프 해제 기능을 제공합니다. 예를 들어 Apache Commons Lang 라이브러리에는 다음 메서드가 있습니다.

public static String unescapeJava(String str)

이 메서드는 위에서 언급한 기본 접근 방식에서 다루지 않는 이스케이프 시퀀스를 포함하여 Java 문자열 리터럴을 이스케이프 해제하는 데 사용할 수 있습니다.

위 내용은 Java 문자열 리터럴을 이스케이프 해제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.