blog

Java UHF 공통 문자 조작 제안 컬렉션

보물 발견 서문 1. 문자열 연결 2. 문자열 찾기 3. 문자열 가로채기 4. 문자열 치환 5. 문자열 분할 6. 문자열 비교 7. 문자열 서식 지정 8. 얼마 전 이해하기 쉽고 ...

Oct 2, 2025 · 13 min. read
シェア

보물 발견하기

얼마 전 이해하기 쉽고 재미있는 거대한 인공지능 학습 웹사이트를 발견해서 여러분과 공유하지 않을 수 없었습니다. 트레저 포털입니다.

서문

문자열 연결

1. + 연산자를 사용합니다:

String str1 = "Hello";
String str2 = ", ";
String str3 = "World";
String result = str1 + str2 + str3;

이 방법은 + 연산자를 사용하여 여러 문자열을 연결할 수 있는 가장 간단한 방법입니다. Java는 문자열 연결을 자동으로 처리하고 새 문자열 객체를 생성합니다.

2. concat() 메서드를 사용합니다:

String str1 = "Hello";
String str2 = ", ";
String str3 = "World";
String result = str1.concat(str2).concat(str3);

concat() 메서드는 문자열을 다른 문자열의 끝에 연결하는 데 사용됩니다. concat() 메서드를 연속적으로 호출하여 여러 문자열을 연결할 수 있습니다.

3. 문자열 빌더 클래스를 사용합니다:

문자열 빌더는 문자열을 자주 수정해야 하는 상황에 적합한 변경 가능한 문자열 클래스로, 여러 개의 중간 문자열 객체를 생성하지 않아 성능을 향상시킵니다.

StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Hello");
stringBuilder.append(", ");
stringBuilder.append("World");
String result = stringBuilder.toString();

이 경우 먼저 StringBuilder 객체를 생성한 다음 append() 메서드를 사용하여 접합할 문자열을 추가하고 마지막으로 toString() 메서드를 사용하여 StringBuilder를 불변의 문자열로 변환합니다.

4. StringBuffer 클래스를 사용합니다:

StringBuffer 클래스는 StringBuilder 클래스와 유사하지만 스레드에 안전하며 멀티 스레드 환경에 적합합니다.

StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Hello");
stringBuffer.append(", ");
stringBuffer.append("World");
String result = stringBuffer.toString();

문자열 빌더와 마찬가지로 앱드() 메서드를 사용하여 최종 문자열을 빌드한 다음, 토스트링() 메서드를 사용하여 불변 문자열을 가져올 수 있습니다.

5. String.join() 메서드를 사용합니다:

이 방법은 더 간결하며 지정된 구분 기호로 여러 문자열을 연결하는 데 특히 유용합니다.

String.join() 
String str1 = "Hello";
String str2 = ", ";
String str3 = "World";
String result = String.join(str2, str1, str3);

문자열 조회

1. indexOf() 메서드를 사용하여 하위 문자열의 위치를 찾습니다:

indexOf() 메서드는 문자열에 다른 하위 문자열이 포함되어 있는지 확인하는 데 사용되며 첫 번째 문자열의 인덱스를 반환합니다. 찾을 수 없으면 -1을 반환합니다.

String mainString = "Hello, World!";
String subString = "World";
int position = mainString.indexOf(subString);
if (position != -1) {
 System.out.println("기본 문자열에서 하위 문자열의 위치는 "+ position);
} else {
 System.out.println("대체 문자열을 찾을 수 없습니다!");
}

2. lastIndexOf() 메서드를 사용하여 마지막 발생을 찾습니다:

lastIndexOf() 메서드는 indexOf( ) 메서드와 유사하지만 마지막으로 발생한 인덱스를 반환합니다.

String mainString = "Java is a powerful programming language. Java is also fun!";
String subString = "Java";
int position = mainString.lastIndexOf(subString);
if (position != -1) {
 System.out.println(" + position);
} else {
 System.out.println("대체 문자열을 찾을 수 없습니다!");
}

3. contains() 메서드를 사용하여 문자열에 하위 문자열이 포함되어 있는지 확인합니다:

contains() 메서드는 문자열에 다른 하위 문자열이 포함되어 있는지 확인하는 데 사용되며 부울 값을 반환합니다.

String mainString = "This is a Java example.";
String subString = "Java";
boolean contains = mainString.contains(subString);
if (contains) {
 System.out.println("메인 문자열에 하위 문자열이 포함되어 있습니다!");
} else {
 System.out.println("주 문자열에 하위 문자열이 포함되어 있지 않습니다!");
}

4. 고급 검색에 정규식을 사용합니다:

Java는 정규식을 사용한 복잡한 문자열 검색도 지원합니다. 패턴일치자 클래스를 사용하여 이 작업을 수행할 수 있습니다. 이를 통해 보다 복잡한 패턴 일치 작업을 수행할 수 있습니다.

import java.util.regex.*;
String text = "The quick brown fox jumps over the lazy dog.";
String pattern = "fox";
Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
while (matcher.find()) {
 System.out.println("일치하는 문자열 찾기: " + matcher.group());
}

문자열 인터셉션

1. 대체 문자열() 메서드를 사용합니다:

substring() 메서드는 문자열에서 부분 문자열을 가로채는 데 사용되며, 가로채기의 시작 및 끝 위치를 지정할 수 있습니다. 이 메서드에는 시작 위치만 전달하는 방법과 시작 위치와 끝 위치를 모두 전달하는 방법의 두 가지 형태가 있습니다.

String mainString = "Hello, World!";
// 인덱스 2에서 인덱스 5까지의 하위 문자열을 가로챕니다.
String subString1 = mainString.substring(2, 5);
System.out.println("하위 문자열 1 가로채기: " + subString1); // 출력 "llo"
// 인덱스 7에서 문자열 끝까지 인터셉트하기
String subString2 = mainString.substring(7);
System.out.println("하위 문자열 가로채기2: " + subString2); // 출력 "World!"

2. split() 메서드를 사용하여 문자열을 분할합니다:

split() 메서드를 사용하면 특정 구분 기호에 따라 문자열을 하위 문자열로 분할한 다음 원하는 하위 문자열을 선택할 수 있습니다.

String text = "apple,banana,grape";
// 쉼표를 구분 기호로 사용하여 문자열 나누기
String[] fruits = text.split(",");
for (String fruit : fruits) {
 System.out.println(" : " + fruit);
}

3. 정규식을 사용한 고급 차단:

Java의 정규식 라이브러리를 사용하면 복잡한 패턴을 기반으로 문자열을 가로챌 수 있습니다.

import java.util.regex.*;
String text = "The quick brown fox jumps over the lazy dog.";
String pattern = "\\b\\w+\\b"; // 일치하는 단어
Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
while (matcher.find()) {
 System.out.println("일치하는 단어: " + matcher.group());
}

문자열 바꾸기

1. replace() 메서드를 사용합니다:

replace() 메서드는 지정된 문자 또는 하위 문자열을 새 문자 또는 하위 문자열로 바꾸는 데 사용됩니다.

String originalString = "Hello, World!";
String searchString = "World";
String replacementString = "Java";
String modifiedString = originalString.replace(searchString, replacementString);
System.out.println("대체된 문자열: " + modifiedString);

출력.

대체된 문자열: Hello, Java!

2. 정규식 대체를 위해 replaceAll() 메서드를 사용합니다:

replaceAll() 메서드를 사용하면 정규식을 사용하여 보다 유연한 교체 작업을 수행할 수 있습니다.

String originalString = "The quick brown fox jumps over the lazy dog.";
String pattern = "fox";
String replacementString = "cat";
String modifiedString = originalString.replaceAll(pattern, replacementString);
System.out.println("대체된 문자열: " + modifiedString);

출력.

 대체된 문자열: The quick brown cat jumps over the lazy dog.

3. 문자열 빌더를 사용하여 바꿉니다:

여러 개의 치환이 필요하거나 고성능이 요구되는 경우 StringBuilder 클래스를 사용할 수 있습니다.

StringBuilder stringBuilder = new StringBuilder("Java is easy. Java is fun.");
String searchString = "Java";
String replacementString = "Python";
int index = stringBuilder.indexOf(searchString);
while (index != -1) {
 stringBuilder.replace(index, index + searchString.length(), replacementString);
 index = stringBuilder.indexOf(searchString);
}
String modifiedString = stringBuilder.toString();
System.out.println("대체된 문자열: " + modifiedString);

출력.

 대체된 문자열: Python is easy. Python is fun.

문자열 분할

1. split() 메서드를 사용합니다:

split() 메서드는 Java에서 가장 일반적으로 사용되는 문자열 분할 메서드입니다. 이 메서드는 지정된 정규식을 구분 기호로 사용하여 문자열을 문자열 배열로 분할합니다.

String inputString = "apple,orange,banana,grape";
String[] fruits = inputString.split(",");
System.out.println("과일 분할:");
for (String fruit : fruits) {
 System.out.println(fruit);
}

출력:

과일을 분할합니다:
apple
orange
banana
grape

2. StringTokenizer 클래스를 사용합니다:

StringTokenizer 클래스는 Java에서 문자열 분할을 수행하는 또 다른 방법으로, 지정된 구분 기호를 사용하여 문자열을 토큰으로 분할합니다.

String inputString = "Java is a powerful programming language";
StringTokenizer tokenizer = new StringTokenizer(inputString);
System.out.println("단어 분할: ");
while (tokenizer.hasMoreTokens()) {
 System.out.println(tokenizer.nextToken());
}

출력:

단어를 분할합니다:
Java
is
a
powerful
programming
language

3. 정규식 사용:

정규식을 구분 기호로 사용하여 보다 유연하게 문자열을 분할할 수도 있습니다.

String inputString = "Java123is456a789powerful";
String[] parts = inputString.split("\\d+");
System.out.println("분할된 섹션: ");
for (String part : parts) {
 System.out.println(part);
}

출력:

분할된 섹션:
Java
is
a
powerful

4. 아파치 커먼즈 랭 라이브러리를 사용합니다:

아파치 커먼즈 랭 라이브러리는 문자열 분할을 쉽게 처리할 수 있는 편리한 split() 메서드가 있는 StringUtils 클래스를 제공합니다.

import org.apache.commons.lang3.StringUtils;
String inputString = "Java;C;C++;Python";
String[] languages = StringUtils.split(inputString, ';');
System.out.println("분할 후 프로그래밍 언어:");
for (String language : languages) {
 System.out.println(language);
}

출력:

프로그래밍 언어 분할:
Java
C
C++
Python

문자열 비교

1. 콘텐츠 비교에는 equals() 메서드를 사용합니다:

equals() 메서드는 두 문자열의 내용을 비교하여 동일한지 확인하는 데 사용됩니다. 이 메서드는 참조가 동일한지 여부뿐만 아니라 문자열의 각 문자를 비교합니다.

String str1 = "Hello";
String str2 = "World";
String str3 = "Hello";
boolean isEqual1 = str1.equals(str2); // false를 반환합니다.
boolean isEqual2 = str1.equals(str3); // 참을 반환합니다.
System.out.println("str1 와 str2는 "+ isEqual1);
System.out.println("str1 과 str3은 "+ isEqual2);

2. 대소문자를 무시하는 콘텐츠 비교를 위해 equalsIgnoreCase() 메서드를 사용합니다:

equalsIgnoreCase() 메서드는 equals() 메서드와 비슷하지만 문자열의 대/소문자를 무시합니다.

String str1 = "Hello";
String str2 = "hello";
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 참을 반환합니다.
System.out.println("str1 와 str2는 "+ isEqualIgnoreCase);

3. 비교 대상() 메서드를 사용하여 사전을 순서대로 비교합니다:

compareTo() 메서드는 두 문자열의 사전 순서를 비교하는 데 사용됩니다. 이 메서드는 두 문자열의 비교 결과를 나타내는 정수를 반환합니다.

String str1 = "apple";
String str2 = "banana";
String str3 = "cherry";
int result1 = str1.compareTo(str2); // 음수를 반환합니다.
int result2 = str2.compareTo(str1); // 양수를 반환합니다.
int result3 = str1.compareTo(str3); // 음수를 반환합니다.
System.out.println("str1 str2와 비교: "+ result1);
System.out.println("str2 str1과 비교: "+ result2);
System.out.println("str1 str3와 비교: "+ result3);

4. startsWith() 및 endsWith() 메서드를 사용하여 접두사 및 접미사를 확인합니다:

startsWith() 메서드는 문자열이 지정된 접두사로 시작하는지 확인하는 데 사용되며, endsWith( ) 메서드는 문자열이 지정된 접미사로 끝나는지 확인하는 데 사용됩니다.

String str = "Hello, World";
boolean startsWithHello = str.startsWith("Hello"); // 참을 반환합니다.
boolean endsWithWorld = str.endsWith("World"); // false를 반환합니다.
System.out.println("문자열이 Hello: "+ startsWithHello);
System.out.println("문자열이 World로 끝나는지 여부: "+ endsWithWorld);

5. 대소문자를 구분하지 않는 사전 순서 비교를 위해 compareToIgnoreCase() 메서드를 사용합니다:

비교대소문자 무시() 메서드는 비교대소문자( )와 비슷하지만 문자열의 대소문자를 무시합니다.

String str1 = "apple";
String str2 = "Banana";
int result = str1.compareToIgnoreCase(str2); // 양수를 반환합니다.
System.out.println("str1 str2와 비교: "+ result);

문자열 서식

1. String.format() 사용

String.format() 메서드를 사용하면 C의 printf() 함수와 유사하게 형식이 지정된 문자열을 만들 수 있습니다. 이 함수는 자리 표시자를 사용하여 삽입할 데이터와 그 형식을 지정합니다. 플레이스홀더는 퍼센트 기호와 삽입할 데이터 유형을 나타내는 문자로 구성됩니다. 다음은 몇 가지 일반적인 플레이스홀더와 그 용도입니다:

  • 요약
  • %s : 문자열.
  • %d : 정수.
  • %f 부동 소수점 숫자.

예시:

String name = "Alice";
int age = 30;
double salary = 50000.50;
String formattedString = String.format("Name: %s, Age: %d, Salary: %.2f", name, age, salary);
System.out.println(formattedString);

출력:

Name: Alice, Age: 30, Salary: 50000.50

위의 예에서 %s, %d%.2f 자리 표시자는 문자열, 정수 및 부동 소수점을 삽입하는 데 사용되며, 부동 소수점은 소수점 이하 두 자리까지 유지하도록 지정됩니다.

2. printf() 사용

printf() 메서드는 형식이 지정된 문자열을 콘솔에 출력하는 데 사용되는 System.out 객체의 메서드입니다. String.format() 과 마찬가지로 동일한 자리 표시자를 사용하여 출력 서식을 지정합니다.

예시:

String name = "Bob";
int age = 25;
double height = 1.75;
System.out.printf("Name: %s, Age: %d, Height: %.2f%n", name, age, height);

출력:

Name: Bob, Age: 25, Height: 1.75

문자열 공백 처리

1. 공백을 삭제합니다:

  • 문자열 클래스의 trim() 메서드를 사용하여 문자열 앞뒤의 공백을 제거할 수 있습니다.
  • trim()은 선행 및 후행 공백이 제거된 새 문자열을 반환합니다.
String text = " This is a text with spaces ";
String trimmedText = text.trim();
System.out.println(trimmedText); //  : "This is a text with spaces"

2. 띄어쓰기 교체:

  • 문자열 클래스의 replace() 메서드를 사용하여 문자열의 공백을 대체할 수 있습니다.
  • 공백을 다른 문자나 문자열로 바꿀 수 있습니다.
String text = "Hello, World!";
String replacedText = text.replace(" ", "_");
System.out.println(replacedText); //  : "Hello,_World!"

3. 문자열을 분할합니다:

  • split() 메서드를 사용하여 문자열을 문자열 배열로 분할합니다.
  • 기본적으로 split() 은 공백을 구분 기호로 사용하지만 사용자 지정 구분 기호를 지정할 수 있습니다.
String sentence = "This is a sample sentence";
String[] words = sentence.split(" "); // 공백을 사용하여 단어 배열로 나누기

4. 공백을 확인합니다:

  • 문자열에 공백이 포함되어 있는지 확인하려면 contains() 메서드를 사용합니다.
String text = "This has spaces";
boolean hasSpaces = text.contains(" "); // 참을 반환합니다.

5. 공백 개수를 세어봅니다:

  • 루프를 사용하여 문자열을 가로지르며 공백의 개수를 계산합니다.
String text = "Count the spaces in this text";
int spaceCount = 0;
for (char c : text.toCharArray()) {
 if (c == ' ') {
 spaceCount++;
 }
}
System.out.println("공백 수: "+ spaceCount); //  : "공백 수: 5"

6. 여러 개의 연속된 공백을 바꿉니다:

  • 정규식을 사용하여 여러 개의 연속된 공백을 하나의 공백으로 바꾸세요.
String text = "Replace multiple spaces with one.";
String replacedText = text.replaceAll("\\s+", " ");
System.out.println(replacedText); //  : "Replace multiple spaces with one."

7. 탭 및 줄 바꿈 처리:

  • 공백 문자에는 공백뿐만 아니라 탭, 줄 바꿈 등도 포함됩니다.
  • 공백을 처리할 때와 마찬가지로 replaceAll() 을 사용하여 처리할 수 있습니다.
String textWithTabs = "This\tis\ta\ttab\tseparated\ttext";
String textWithNewlines = "This
is
a
newline
separated
text";
Read next

SQL Server 마스터-슬레이브 구성 및 슬레이브 데이터를 Clickhouse에 실시간으로 동기화합니다.

리눅스 서버만 있으면 SQL Server 마스터-슬레이브 서비스를 구축하고 슬레이브 데이터베이스 데이터를 실시간으로 동기화하는 방법을 실습을 통해 알려드립니다.

Oct 1, 2025 · 9 min read