자바 문자열에서, 따옴표 충돌 문제 처리
자바는 물론이고 대부분의 언어에서는, 문자열을 큰따옴표(")로 둘러싸는데, 큰따옴표 자체를 문자열 속에 넣을 때는 그냥 표현하면 충돌하기에 반드시,
\"
이렇게 이스케이프해 주어야 됩니다. 즉, 큰따옴표 바로 앞에 백슬래쉬(\) 문자를 적어주면, 따옴표를 문자열의 일부로 정확히 인식합니다.
"봉숭아 학당!"
이렇게 문자열을 정의하면
봉숭아 학당!
이렇게 인식됩니다.
"봉숭아 학당!"
이렇게 큰따옴표로 둘러싸인 문자열을 정의하려면
""봉숭아 학당!""
이러면 ')' expected 라는 에러가 나기에 안되고
"\"봉숭아 학당!\""
반드시 위와 같이 해주어야, "봉숭아 학당!" 이렇게 쌍따옴표와 함께 출력됩니다.
이것은 문자열 자체에 포함된 따옴표를 다른 종류의 따옴표로 치환하는 예제입니다:
큰따옴표(쌍따옴표)/작은따옴표(홑따옴표) 치환 예제
파일명: Foo.java
public class Foo {
public static void main(String args[]) {
String s = "\"봉숭아 학당!\" '봉숭아 학당!'"; // 원본 문자열
String s2;
System.out.println("원본: " + s + "\n");
s2 = s.replace("\"", "'");
System.out.println("치환(큰따옴표를 작은따옴표로): " + s2);
s2 = s.replace("'", "\"");
System.out.println("치환(작은따옴표를 큰따옴표로): " + s2);
}
}
public static void main(String args[]) {
String s = "\"봉숭아 학당!\" '봉숭아 학당!'"; // 원본 문자열
String s2;
System.out.println("원본: " + s + "\n");
s2 = s.replace("\"", "'");
System.out.println("치환(큰따옴표를 작은따옴표로): " + s2);
s2 = s.replace("'", "\"");
System.out.println("치환(작은따옴표를 큰따옴표로): " + s2);
}
}
실행 결과:
원본: "봉숭아 학당!" '봉숭아 학당!'
치환(큰따옴표를 작은따옴표로): '봉숭아 학당!' '봉숭아 학당!'
치환(작은따옴표를 큰따옴표로): "봉숭아 학당!" "봉숭아 학당!"
치환(큰따옴표를 작은따옴표로): '봉숭아 학당!' '봉숭아 학당!'
치환(작은따옴표를 큰따옴표로): "봉숭아 학당!" "봉숭아 학당!"
댓글 없음:
댓글 쓰기