💡toUpperCase() 메소드, toLowerCase() 메소드
대소문자 구분 메소드
String content = "오늘 수업은 Java입니다.";
String word = "java";
System.out.println(content); // 오늘 수업은 Java입니다.
System.out.println(content.toUpperCase()); // 오늘 수업은 JAVA입니다.
System.out.println(content.toLowerCase()); // 오늘 수업은 java입니다.
자바(Java)는 대소문자를 구분하는 언어로, 변수, 메서드, 클래스 등의 모든 식별자의 대소문자를 구별하여 처리한다.
예로들어 자바에서 Java와 java는 대소문자의 차이로 인해 다른 단어로 인식하게 된다.
대소문자를 구분하여 검색 (Case sensitive)
if (content.indexOf(word) > -1) {
System.out.println("결과 O");
} else {
System.out.println("결과 X");
}
대소문자를 구분하는 경우 정확도가 높으나, 검색률이 낮아진다는 단점이 있다.
검색률을 높이기 위해서 toUpperCase() 메소드 또는 toLowerCase() 메소드를 사용할 수 있다.
대소문자를 구분하지 않고 검색 (Case insensitive)
if (content.toUpperCase().indexOf(word.toUpperCase()) > -1) {
System.out.println("결과 O");
} else {
System.out.println("결과 X");
}
대소문자를 구분하지 않는 방법은 모든 문자를 대문자로 만들거나 소문자로 만들어서 한 쪽에 몰아버리는 것이다.
찾는 대상과 찾을 대상 모두 대문자로 바꿔버리면 정확도는 낮지만 검색률은 높아지게 된다.
💡startsWith() 메소드, endsWith() 메소드
문자열의 첫 글자와 끝 글자 검색
String txt = "자바 프로그래밍";
System.out.println(txt.startsWith("자바")); // 문자열이 자바로 시작하는가?
System.out.println(txt.endsWith("프로그래밍")); // 문자열이 프로그래밍으로 끝나는가?
String name = "홍길동";
System.out.println(name.startsWith("홍"));
System.out.println(name.charAt(0) == '홍');
System.out.println(name.indexOf("동") == 0);
System.out.println(name.endsWith("동"));
System.out.println(name.charAt(name.length()-1) == '동');
System.out.println(name.indexOf("동") == name.length()-1);
startsWith() 메소드와 endsWith() 메소드는 단어를 찾으면 true, 못 찾으면 false를 반환한다.
파일 확장자 검색
String path = "C:\\class\\java\\JavaTest\\Ex34_String.java";
// 해당 파일이 '자바 소스 파일'입니까? > 확장자 검사
if (path.endsWith(".java")) {
System.out.println("자바 소스 파일");
} else {
System.out.println("다른 파일");
}
두 메소드는 위와 같이 문자열의 특징이 첫 번째 또는 마지막 부분에 있을 경우 사용할 수 있다.