Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(posts): create 2024-12-23-java-string-remove-character #605

Merged
merged 1 commit into from
Dec 23, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 164 additions & 0 deletions _posts/java/2024-12-23-java-string-remove-character.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
---
title: Java String에서 문자 제거
author: dejavuhyo
date: 2024-12-23 14:15:00 +0900
categories: [Language, Java]
tags: [java-string, string-remove-character, remove-character, 자바-스트링, 스트링-문자-제거, 문자-제거]
---

## 1. 문자열에서 문자 제거
Java String 클래스에는 다양한 `replace()` 메서드가 있다. 이를 사용하여 문자열에서 문자를 제거할 수 있다.

### 1) replace(char oldChar, char newChar)
이 메서드는 oldChar를 newChar로 대체한 새 문자열을 반환한다. 이 메서드는 oldChar의 모든 발생을 newChar 문자로 대체한다.

문자열에서 모든 문자를 제거하는 간단한 예이다.

* 예제

```java
public class Test {
public static void main(String[] args) {
String s1 = "Hello";
System.out.println(s1);
s1 = s1.replace("l", "");
System.out.println(s1);
}
}
```

* 결과

```text
Hello
Heo
```

### 2) replace(CharSequence target, CharSequence replacement)
이 방법은 대상 하위 문자열을 대체 하위 문자열로 대체한다. 이 방법은 대상 하위 문자열의 모든 일치 항목을 대체 하위 문자열로 대체한다.

* 예제

```java
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);
}
}
```

* 결과

```text
Java Python Spring Python
Java Spring
```

### 3) replaceFirst(String regex, String replacement)
이 방법은 정규식의 첫 번째 일치 항목을 대체 문자열로 대체한다. 이 방법은 하위 문자열의 첫 번째 발생만 대체해야 할 때 유용하다.

`replaceFirst()` 메서드와 `replaceAll()` 메서드는 첫 번째 인수로 정규 표현식을 허용한다. 이를 사용하여 문자열에서 패턴을 제거할 수 있다. 예를 들어 문자열에서 소문자를 모두 제거한다.

* 예제

```java
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);
}
}
```

* 결과

```text
Hi Hello
H H
H Hello
```


### 4) replaceAll(String regex, String replacement)
`replaceFirst()` 메서드와 같다. 유일한 차이점은 일치하는 정규 표현식의 모든 발생이 대체 문자열로 대체된다는 것이다.

문자열에서 모든 공백을 제거하는 예제이다.

* 예제

```java
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);
}
}
```

* 결과

```text
Hello World 2019
HelloWorld2019
```

문자열에서 탭 문자와 공백을 제거하는 방법이다.

* 예제

```java
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);
}
}
```

* 결과

```text
Hello World 2019
HelloWorld 2019
HelloWorld2019
```

정규식을 사용할 수도 있다.

```java
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);
}
}
```

* 결과

```text
Hello World 2019
HelloWorld2019
```

> 빈 문자 상수는 없다. 따라서 첫 번째 `replace(char c1, char c2)` 방법을 사용하여 문자열에서 문자를 제거할 수 없다. 빈 문자열을 대체 문자열로 전달하여 다른 세 가지 방법 중 하나를 사용해야 한다.

문자열에서 문자를 제거하려면 `remove()` 메서드가 필요하지 않다. `replace()` 메서드는 이 작업에 충분하다.

## [출처 및 참고]
* [https://www.javastring.net/java/string/remove-character-from-string-in-java](https://www.javastring.net/java/string/remove-character-from-string-in-java)
Loading