어제 오늘 내일

[Java] 문자열에서 따옴표 제거 하기 본문

IT/Java

[Java] 문자열에서 따옴표 제거 하기

hi.anna 2021. 4. 21. 06:15

 

문자열에서 따옴표를 찾아서, 

이 따옴표를 모두 제거하는 방법을 소개합니다.

 

가장 단순하게는

반복문을 사용해서

문자열의 글자를 모두 체크해서 따옴표를 제거할 수도 있습니다.

하지만, 여기서는 Java의 java.lang.String 클래스에서 제공하는 메소드를 사용해 보도록 하겠습니다.

 

 

java.lang.String 클래스의 replaceAll() 또는 replace() 메소드를 사용하여 따옴표를 제거할 수 있습니다.

 

replaceAll()

 코드 

public class StringQuotes {
    public static void main(String[] args) {

        String str = "Hello \"World\"";
        System.out.println("따옴표 포함 : " + str);

        // 따옴표 제거
        str = str.replaceAll("\"", "");
        System.out.println("따옴표 제거 : " + str);
    }
}

 결과 

따옴표 포함 : Hello "World"
따옴표 제거 : Hello World

 

String replaceAll​(String regex, String replacement)
java.lang.String 클래스의 replaceAll()함수는 
문자열에서
첫번째 파라미터로 입력받은 정규식(regex)와 일치하는 문자열을 찾아서
두번째 파라미터로 입력받은 문자열(replacement)로 변환하여
변경된 문자열을 리턴하는 메소드입니다.

str = str.replaceAll("\"", "");

그래서 위 예제는 

replaceAll() 메소드의 첫번째 파라미터로 쌍따옴표("\"")를 입력받고,

두번째 파라미터로 비어있는 문자열("")을 입력받아서,

문자열에 나타나는 모든 쌍따옴표를 공백으로 치환하는 방법으로

문자열에 있는 쌍따옴표를 제거하고 있습니다.

 

 

replace()

 코드 

public class StringQuotes {
    public static void main(String[] args) {

        String str = "Hello \"World\"";
        System.out.println("따옴표 포함 : " + str);

        // 따옴표 제거
        str = str.replace("\"", "");
        System.out.println("따옴표 제거 : " + str);
    }
}

 결과 

따옴표 포함 : Hello "World"
따옴표 제거 : Hello World

replaceAll() 메소드와 마찬가지 방법으로 replace() 메소드를 사용해서

문자열에서 따옴표를 제거할 수도 있습니다.

 

이 예제에서는 단순히 따옴표를 치환하는 것이므로

replace()와 replaceAll() 사용법에 차이가 없는 것처럼 보입니다.

하지만, 치환해야 하는 대상을 선정하는데 좀 더 복잡한 규칙이 필요하다면

아마도 대부분의 경우 replaceAll()이 유용할 것입니다.

하지만, 이번 예제에서는 두 메소드 중 어느 것을 사용해도 같은 결과를 얻게 됩니다.

 

String replace​(CharSequence target, CharSequence replacement)
java.lang.String 클래스의 replace() 메소드는
첫번째 파라미터로 받은 문자열(target)과 일치하는 문자열을 찾아서
두번째 파라미터로 받은 문자열(replacement)로 변환하여
변경된 문자열을 리턴하는 메소드입니다.
replaceAll() 메소드와 다른 점은
replaceAll() 메소드는 정규식을 입력받아서 정규식과 일치하는 문자열을 치환하는 반면,
replace() 메소드는 문자열을 입력받아서 해당 문자열과 일치하는 문자열을 치환한다는 점입니다.

 

 

반응형
Comments