1. 개요

아파치 코 몬즈 랭 3 라이브러리는 자바의 API의 핵심 클래스의 조작에 대한 지원을 제공합니다. 이 지원에는 문자열, 숫자, 날짜, 동시성, 개체 반영 등을 처리하는 방법이 포함됩니다.

라이브러리에 대한 일반적인 소개를 제공하는 것 외에도이 예제 String 인스턴스의 조작에 사용되는 StringUtils 클래스의 메서드를 보여줍니다 .

2. Maven 의존성

Commons Lang 3 라이브러리를 사용하려면 다음 의존성을 사용하여 중앙 Maven 저장소에서 가져옵니다.

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

이 라이브러리의 최신 버전은 여기에서 찾을 수 있습니다 .

3. StringUtils

인 StringUtils의 클래스는 방법 제공 널 (null) 문자열에 - 안전 작업을.

이 클래스의 많은 메소드 에는 null 안전 이 아닌 클래스 java.lang.String에 정의 된 대응하는 메소드 가 있습니다 . 그러나이 섹션에서는 대신 String 클래스에 해당 항목이없는 여러 메서드에 중점을 둡니다 .

4. containsAny 메소드

containsAny의 방법을 확인 주어진 경우 문자열은 지정된 문자 세트에있는 문자가 포함되어 있습니다. 이 문자 집합은 String 또는 char varargs 형식으로 전달할 수 있습니다 .

다음 코드 조각은 결과 확인과 함께이 메서드의 두 가지 오버로드 된 특징을 사용하는 방법을 보여줍니다.

String string = "baeldung.com";
boolean contained1 = StringUtils.containsAny(string, 'a', 'b', 'c');
boolean contained2 = StringUtils.containsAny(string, 'x', 'y', 'z');
boolean contained3 = StringUtils.containsAny(string, "abc");
boolean contained4 = StringUtils.containsAny(string, "xyz");
 
assertTrue(contained1);
assertFalse(contained2);
assertTrue(contained3);
assertFalse(contained4);

5. containsIgnoreCase 메소드

containsIgnoreCase에 있어서 검사 주어진 경우 문자열 다른 포함 된 문자열 경우 둔감하게한다.

것이 다음의 코드를 검증하고 문자열 "baeldung.com" 포함 "BAELDUNG"는 대소 무시된다 :

String string = "baeldung.com";
boolean contained = StringUtils.containsIgnoreCase(string, "BAELDUNG");
 
assertTrue(contained);

6. countMatches 메서드

counterMatches의 방법 카운트 얼마나 많은 시간 주어진에서 문자 또는 부분 문자열이 나타납니다 문자열입니다.

다음은 'w' 가 네 번 나타나고 "com""welcome to www.baeldung.com" 문자열 에서 두 번 나타나는 것을 확인하는이 방법의 데모입니다 .

String string = "welcome to www.baeldung.com";
int charNum = StringUtils.countMatches(string, 'w');
int stringNum = StringUtils.countMatches(string, "com");
 
assertEquals(4, charNum);
assertEquals(2, stringNum);

7. 추가 및 추가 방법

appendIfMissingappendIfMissingIgnoreCase 방법은 소정의 단부에 접미사를 추가 문자열 이미 각각 전달 된 접미사 경우에 민감하고 둔감하게 임의 끝나지 않는 경우.

마찬가지로 prependIfMissingprependIfMissingIgnoreCase 메서드 는 전달 된 접두사로 시작하지 않는 경우 지정된 문자열 의 시작 부분에 접두사를 추가합니다 .

다음 예에서 appendIfMissingprependIfMissing 메소드는 이러한 접미사가 반복되지 않고 문자열 "baeldung.com"에 접미사와 접두사를 추가하는 데 사용됩니다 .

String string = "baeldung.com";
String stringWithSuffix = StringUtils.appendIfMissing(string, ".com");
String stringWithPrefix = StringUtils.prependIfMissing(string, "www.");
 
assertEquals("baeldung.com", stringWithSuffix);
assertEquals("www.baeldung.com", stringWithPrefix);

8. 케이스 변경 방법

문자열 클래스는 이미 모든 문자를 변환하는 방법을 정의하는 문자열이 대문자 또는 소문자로합니다. 이 하위 섹션에서는 swapCase , capitalizeuncapitalize를 포함하여 다른 방식으로 String 의 대소 문자를 변경하는 메서드의 사용 만 설명합니다 .

swapCase에 있어서 스왑 (A)의 경우 문자열은 소문자와 대문자 소문자 대문자 변경 :

String originalString = "baeldung.COM";
String swappedString = StringUtils.swapCase(originalString);
 
assertEquals("BAELDUNG.com", swappedString);

투자 주어진의 첫 번째 문자 방식 변환 문자열이 변경되지 않은 나머지 모든 문자를 남겨두고 대문자를 :

String originalString = "baeldung";
String capitalizedString = StringUtils.capitalize(originalString);
 
assertEquals("Baeldung", capitalizedString);

uncapitalize 방법은 주어진의 첫 번째 문자 변환 문자열이 변경되지 않은 나머지 모든 문자를 떠나, 소문자로 :

String originalString = "Baeldung";
String uncapitalizedString = StringUtils.uncapitalize(originalString);
 
assertEquals("baeldung", uncapitalizedString);

9. 반전 방법

인 StringUtils의 : 클래스는 문자열을 반대하는 두 가지 방법을 정의 reverseDelimited을 . 방법은 모든 문자를 재 배열 문자열 그동안 반대 순서로 reverseDelimited의 문자의 방법 재주문 그룹이 지정된 구분 기호로 구분.

다음 코드 조각은 "baeldung" 문자열을 반전 하고 결과의 유효성을 검사합니다.

String originalString = "baeldung";
String reversedString = StringUtils.reverse(originalString);
 
assertEquals("gnudleab", reversedString);

reverseDelimited 메서드를 사용하면 문자가 개별적으로가 아니라 그룹으로 반전됩니다.

String originalString = "www.baeldung.com";
String reversedString = StringUtils.reverseDelimited(originalString, '.');
 
assertEquals("com.baeldung.www", reversedString);

10. rotate () 메서드

회전 () (A)의 방법 원형 이동 문자 문자열 위치의 번호입니다. 아래 코드 조각은 문자열 "baeldung" 의 모든 문자를 오른쪽으로 네 위치 이동하고 결과를 확인합니다.

String originalString = "baeldung";
String rotatedString = StringUtils.rotate(originalString, 4);
 
assertEquals("dungbael", rotatedString);

11. 차이 방법

차분 있어서 제의 나머지를 반환 두 문자열을 비교하는 문자열을 그 제 상이한 위치에서 시작. 다음 코드 조각은 "Baeldung Tutorials""Baeldung Courses" 라는문자열 을 양방향으로 비교하고 결과를 검증합니다.

String tutorials = "Baeldung Tutorials";
String courses = "Baeldung Courses";
String diff1 = StringUtils.difference(tutorials, courses);
String diff2 = StringUtils.difference(courses, tutorials);
 
assertEquals("Courses", diff1);
assertEquals("Tutorials", diff2);

12. 결론

이 예제에서는 Apache Commons Lang 3의 문자열 처리를 소개하고 StringUtils 라이브러리 클래스 에서 사용할 수있는 주요 API를 살펴 봅니다.

항상 그렇듯이 위에 제공된 모든 예제 및 코드 스 니펫의 구현은 GitHub 프로젝트 에서 찾을 수 있습니다 .