Java String에서 문자 제거
1. 문자열에서 문자 제거
Java String 클래스에는 다양한 replace()
메서드가 있다. 이를 사용하여 문자열에서 문자를 제거할 수 있다.
1) replace(char oldChar, char newChar)
이 메서드는 oldChar를 newChar로 대체한 새 문자열을 반환한다. 이 메서드는 oldChar의 모든 발생을 newChar 문자로 대체한다.
문자열에서 모든 문자를 제거하는 간단한 예이다.
- 예제
1
2
3
4
5
6
7
8
public class Test {
public static void main(String[] args) {
String s1 = "Hello";
System.out.println(s1);
s1 = s1.replace("l", "");
System.out.println(s1);
}
}
- 결과
1
2
Hello
Heo
2) replace(CharSequence target, CharSequence replacement)
이 방법은 대상 하위 문자열을 대체 하위 문자열로 대체한다. 이 방법은 대상 하위 문자열의 모든 일치 항목을 대체 하위 문자열로 대체한다.
- 예제
1
2
3
4
5
6
7
8
public class Test {
public static void main(String[] args) {
String s1 = "Java Python Spring Python";
System.out.println(s1);
String s2 = s1.replace("Python", "");
System.out.println(s2);
}
}
- 결과
1
2
Java Python Spring Python
Java Spring
3) replaceFirst(String regex, String replacement)
이 방법은 정규식의 첫 번째 일치 항목을 대체 문자열로 대체한다. 이 방법은 하위 문자열의 첫 번째 발생만 대체해야 할 때 유용하다.
replaceFirst()
메서드와 replaceAll()
메서드는 첫 번째 인수로 정규 표현식을 허용한다. 이를 사용하여 문자열에서 패턴을 제거할 수 있다. 예를 들어 문자열에서 소문자를 모두 제거한다.
- 예제
1
2
3
4
5
6
7
8
9
10
public class Test {
public static void main(String[] args) {
String s1 = "Hi Hello";
System.out.println(s1);
String s2 = s1.replaceAll("([a-z])", "");
System.out.println(s2);
String s3 = s1.replaceFirst("([a-z])", "");
System.out.println(s3);
}
}
- 결과
1
2
3
Hi Hello
H H
H Hello
4) replaceAll(String regex, String replacement)
replaceFirst()
메서드와 같다. 유일한 차이점은 일치하는 정규 표현식의 모든 발생이 대체 문자열로 대체된다는 것이다.
문자열에서 모든 공백을 제거하는 예제이다.
- 예제
1
2
3
4
5
6
7
8
public class Test {
public static void main(String[] args) {
String s1 = "Hello World 2019";
System.out.println(s1);
String s2 = s1.replace(" ", "");
System.out.println(s2);
}
}
- 결과
1
2
Hello World 2019
HelloWorld2019
문자열에서 탭 문자와 공백을 제거하는 방법이다.
- 예제
1
2
3
4
5
6
7
8
9
10
public class Test {
public static void main(String[] args) {
String s1 = "Hello World\t2019";
System.out.println(s1);
String s2 = s1.replace(" ", "");
System.out.println(s2);
String s3 = s2.replace("\t", "");
System.out.println(s3);
}
}
- 결과
1
2
3
Hello World 2019
HelloWorld 2019
HelloWorld2019
정규식을 사용할 수도 있다.
1
2
3
4
5
6
7
8
public class Test {
public static void main(String[] args) {
String s1 = "Hello World\t2019";
System.out.println(s1);
String s2 = s1.replaceAll("\\s", "");
System.out.println(s2);
}
}
- 결과
1
2
Hello World 2019
HelloWorld2019
빈 문자 상수는 없다. 따라서 첫 번째
replace(char c1, char c2)
방법을 사용하여 문자열에서 문자를 제거할 수 없다. 빈 문자열을 대체 문자열로 전달하여 다른 세 가지 방법 중 하나를 사용해야 한다.
문자열에서 문자를 제거하려면 remove()
메서드가 필요하지 않다. replace()
메서드는 이 작업에 충분하다.