Java/문자열

[Java]특정 문자열로 시작하는지 확인하는 방법

DevStory 2022. 4. 8.

특정 문자열로 시작하는지 확인하는 방법

이번 포스팅에서는 문자열이 특정 문자열로 시작하는지 확인하는 방법을 소개합니다. 문자열에서 특정 문자열이 존재하는지 확인하는 방법과 유사하게 동작합니다.


방법 1. String 클래스의 startsWith() 메서드

startsWith() 메서드는 문자열이 특정 문자열로 시작하는지 확인하기 위한 방법 중 가장 많이 사용하는 방법입니다. 특정 문자열로 시작하면 true, 그렇지 않으면 false가 반환됩니다.

 

대소문자 구분 없이 문자열을 비교하기 위해서는 toLowerCase() 또는 toUpperCase() 메서드를 사용합니다.

String str = "Java Programming";

System.out.println(str.startsWith("Java"));
System.out.println(str.startsWith("java"));

System.out.println(str.toLowerCase().startsWith("JaVa".toLowerCase()));
System.out.println(str.toUpperCase().startsWith("jAvA".toUpperCase()));

System.out.println(str.toLowerCase().startsWith(""));

[실행 결과]

true
false
true
true
true

참고로 startsWith() 메서드에 빈 문자열("")을 전달하면 항상 true가 반환됩니다.


방법 2. String 클래스의 indexOf 메서드

indexOf() 메서드는 문자열에 특정 문자열이 존재하면 해당 문자열의 처음 인덱스가 반환되고 그렇지 않으면 -1이 반환됩니다. indexOf() 메서드가 0을 반환하면 특정 문자열로 시작한다는 의미입니다.

String str = "Java Programming";

System.out.println(str.indexOf("Java"));
System.out.println(str.indexOf("Programming"));
System.out.println(str.indexOf("C#"));

[실행 결과]

0
5
-1

문자열 "Java"가 첫 번째 위치에 존재하므로 0이 반환되었습니다.

문자열 "Programming"은 문자열 변수 str에 존재하지만 시작 위치가 아니므로 해당 문자열의 처음 인덱스가 반환되었습니다.

문자열 "C#"은 존재하지 않으므로 -1이 반환됩니다.

반응형

StringUtils 클래스

Apache Commons 라이브러리는 Java 프레임워크에서 확장된 다양한 기능을 지원합니다. 문자열을 조작하는 StringUtils 클래스를 제공하며 자바에서 기본적으로 제공하는 String 클래스와 유사합니다. 주요 차이점은 StringUtils 클래스는 String 클래스에 비해 null을 안전하게 처리한다는 것입니다. 


방법 3. StringUtils 클래스의 indexOf 메서드

StringUtils 클래스의 indexOf() 메서드는 String 클래스의 indexOf() 메서드와 유사하게 작동합니다. 특정 문자열을 찾으면 특정 문자열이 위치하는 첫 번째 인덱스가 반환되고 특정 문자열이 존재하지 않으면 -1이 반환됩니다.

 

indexOf() 메서드가 0을 반환하는 것은 특정 문자열이 시작 위치에 존재한다는 의미입니다. 문자열의 대소문자를 무시하고 싶은 경우 toLowerCase() 또는 toUpperCase() 메서드를 사용합니다.

String str = "Java Programming";

System.out.println(StringUtils.indexOf(str, "Java"));
System.out.println(StringUtils.indexOf(str, "Programming"));
System.out.println(StringUtils.indexOf(str, "C#"));

[실행 결과]

0
5
-1

방법 4. StringUtils 클래스의 startsWith 메서드

StringUtils 클래스의 startsWith() 메서드는 String 클래스의 startsWith() 메서드와 유사하게 작동합니다. 특정 문자열이 시작 위치에 존재하면 true가 반환되며, 그렇지 않으면 false가 반환됩니다.

String str = "Java Programming";

System.out.println(StringUtils.startsWith(str, "Java"));
System.out.println(StringUtils.startsWith(str.toLowerCase(), "JAVA".toLowerCase()));
System.out.println(StringUtils.startsWith(null, null));

[실행 결과]

true
true
true

방법 5. StringUtils 클래스의 startsWithIgnoreCase 메서드 

대소문자 구분을 무시하기 위해서는 항상 toLowerCase() 또는 toUpperCase() 메서드를 호출했습니다. 하지만 StringUtils 클래스에서 제공하는 startsWithIgnoreCase() 메서드를 사용한다면 더 이상  toLowerCase() 또는 toUpperCase() 메서드를 호출하지 않아도 됩니다.

String str = "Java Programming";

System.out.println(StringUtils.startsWithIgnoreCase(str, "Java"));
System.out.println(StringUtils.startsWithIgnoreCase(str, "jAvA"));

[실행 결과]

true
true
반응형

댓글