소개
이 랩에서는 Java 에서 문자열이 특정 접미사로 끝나는지 확인하는 방법을 배우게 됩니다. 이는 파일 형식을 검증하거나 끝 부분을 기반으로 데이터를 구문 분석하는 것과 같은 작업에 필수적인 기술입니다. endsWith() 메서드를 살펴보고, 대소문자 구분을 이해하며, 더 복잡한 검사를 위해 startsWith()와 결합하는 방법을 배우게 됩니다. 실습 예제를 통해 Java 프로그램에서 이러한 문자열 조작 기술을 사용하는 실질적인 경험을 얻을 수 있습니다.
endsWith() 를 사용하여 접미사 확인
이 단계에서는 Java 에서 endsWith() 메서드를 사용하여 문자열이 특정 접미사로 끝나는지 확인하는 방법을 살펴보겠습니다. 이는 파일 확장자를 검증하거나, 특정 패턴을 확인하거나, 끝 부분을 기반으로 데이터를 처리해야 할 때 흔히 사용되는 작업입니다.
endsWith() 메서드는 Java 의 String 클래스에 속합니다. 이 메서드는 확인하려는 접미사를 인수로 받으며, 부울 값 (boolean value) 을 반환합니다. 문자열이 지정된 접미사로 끝나면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
endsWith()가 어떻게 작동하는지 보여주는 간단한 Java 프로그램을 만들어 보겠습니다.
WebIDE 편집기에서
HelloJava.java파일을 엽니다. 열려 있지 않은 경우, 왼쪽의 파일 탐색기에서project폴더 내에서 찾을 수 있습니다.HelloJava.java의 기존 코드를 다음 코드로 바꿉니다.public class HelloJava { public static void main(String[] args) { String fileName = "document.txt"; boolean endsWithTxt = fileName.endsWith(".txt"); System.out.println("Does '" + fileName + "' end with '.txt'? " + endsWithTxt); String imageUrl = "photo.jpg"; boolean endsWithJpg = imageUrl.endsWith(".jpg"); System.out.println("Does '" + imageUrl + "' end with '.jpg'? " + endsWithJpg); String documentName = "report.pdf"; boolean endsWithDoc = documentName.endsWith(".doc"); System.out.println("Does '" + documentName + "' end with '.doc'? " + endsWithDoc); } }이 코드에서:
- 세 개의
String변수 (fileName,imageUrl,documentName) 를 선언합니다. - 각 문자열에 대해
endsWith()메서드를 사용하여 특정 접미사 (.txt,.jpg,.doc) 로 끝나는지 확인합니다. - 결과 (
true또는false) 는 부울 변수 (endsWithTxt,endsWithJpg,endsWithDoc) 에 저장됩니다. - 마지막으로,
System.out.println()을 사용하여 결과를 콘솔에 출력합니다.
- 세 개의
HelloJava.java파일을 저장합니다 (Ctrl+S 또는 Cmd+S).이제 프로그램을 컴파일해 보겠습니다. WebIDE 하단의 터미널을 열고
~/project디렉토리에 있는지 확인합니다. 그런 다음 다음 명령을 실행합니다.javac HelloJava.java오류가 없으면 컴파일이 조용히 완료되고
HelloJava.class파일이~/project디렉토리에 생성됩니다.마지막으로,
java명령을 사용하여 컴파일된 프로그램을 실행합니다.java HelloJava다음과 유사한 출력을 볼 수 있습니다.
Does 'document.txt' end with '.txt'? true Does 'photo.jpg' end with '.jpg'? true Does 'report.pdf' end with '.doc'? false이 출력은
endsWith()검사 결과를 보여주며,document.txt가.txt로 끝나고,photo.jpg가.jpg로 끝나며,report.pdf가.doc로 끝나지 않음을 확인합니다.
endsWith() 메서드를 사용하여 문자열 접미사를 성공적으로 확인했습니다. 이는 Java 프로그래밍에서 자주 사용하게 될 기본적인 작업입니다.
대소문자 구분을 이용한 접미사 테스트
이전 단계에서 endsWith() 메서드를 사용하는 방법을 배웠습니다. Java 의 endsWith() 메서드가 대소문자를 구분하여 비교한다는 것을 이해하는 것이 중요합니다. 즉, "file.txt"는 ".txt"로 끝나지만, ".TXT"로 끝나지는 않습니다.
이러한 대소문자 구분이 실제로 어떻게 작동하는지 확인하기 위해 프로그램을 수정해 보겠습니다.
WebIDE 편집기에서
HelloJava.java파일을 엽니다.기존 코드를 다음 코드로 바꿉니다.
public class HelloJava { public static void main(String[] args) { String fileName = "document.txt"; // Case-sensitive check boolean endsWithLowercaseTxt = fileName.endsWith(".txt"); System.out.println("Does '" + fileName + "' end with '.txt' (lowercase)? " + endsWithLowercaseTxt); // Case-sensitive check with uppercase suffix boolean endsWithUppercaseTxt = fileName.endsWith(".TXT"); System.out.println("Does '" + fileName + "' end with '.TXT' (uppercase)? " + endsWithUppercaseTxt); String anotherFile = "IMAGE.JPG"; // Case-sensitive check with lowercase suffix boolean endsWithLowercaseJpg = anotherFile.endsWith(".jpg"); System.out.println("Does '" + anotherFile + "' end with '.jpg' (lowercase)? " + endsWithLowercaseJpg); // Case-sensitive check with uppercase suffix boolean endsWithUppercaseJpg = anotherFile.endsWith(".JPG"); System.out.println("Does '" + anotherFile + "' end with '.JPG' (uppercase)? " + endsWithUppercaseJpg); } }이 업데이트된 코드에서는 메서드의 대소문자 구분 특성을 강조하기 위해 소문자 및 대문자 접미사 모두를 사용하여
endsWith()를 명시적으로 테스트하고 있습니다.HelloJava.java파일을 저장합니다.터미널에서 수정된 프로그램을 컴파일합니다.
javac HelloJava.java컴파일된 프로그램을 실행합니다.
java HelloJava다음과 유사한 출력을 볼 수 있습니다.
Does 'document.txt' end with '.txt' (lowercase)? true Does 'document.txt' end with '.TXT' (uppercase)? false Does 'IMAGE.JPG' end with '.jpg' (lowercase)? false Does 'IMAGE.JPG' end with '.JPG' (uppercase)? true보시다시피,
endsWith()메서드는 접미사의 대소문자가 문자열의 대소문자와 정확히 일치하지 않을 때false를 반환했습니다.
대소문자를 구분하지 않는 검사를 수행해야 하는 경우, 일반적으로 endsWith()를 사용하기 전에 문자열과 접미사를 모두 동일한 대소문자 (소문자 또는 대문자) 로 변환합니다. 이 특정 단계에서는 다루지 않지만, 기억해 두면 유용한 기술입니다.
Java 에서 문자열을 사용할 때 대소문자 구분을 이해하는 것이 중요합니다. 많은 문자열 메서드가 기본적으로 대소문자를 구분하기 때문입니다.
startsWith() 와 endsWith() 검사 결합
endsWith()를 사용하여 문자열의 끝을 확인하는 것 외에도, startsWith() 메서드를 사용하여 문자열의 시작 부분을 확인할 수도 있습니다. 이 메서드는 endsWith()와 유사하게 작동하며, 접두사를 인수로 받아 문자열이 해당 접두사로 시작하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. endsWith()와 마찬가지로, startsWith()도 대소문자를 구분합니다.
startsWith()와 endsWith()를 결합하면 문자열에 대해 보다 구체적인 검사를 수행할 수 있습니다. 예를 들어, 파일 이름이 "temp_"로 시작하고 ".log"로 끝나는지 확인하고 싶을 수 있습니다.
startsWith()와 endsWith()를 모두 사용하도록 프로그램을 업데이트해 보겠습니다.
WebIDE 편집기에서
HelloJava.java파일을 엽니다.기존 코드를 다음 코드로 바꿉니다.
public class HelloJava { public static void main(String[] args) { String logFileName = "temp_application_error.log"; boolean startsWithTemp = logFileName.startsWith("temp_"); boolean endsWithLog = logFileName.endsWith(".log"); System.out.println("Does '" + logFileName + "' start with 'temp_'? " + startsWithTemp); System.out.println("Does '" + logFileName + "' end with '.log'? " + endsWithLog); // Combine checks using the logical AND operator (&&) boolean isTempLogFile = startsWithTemp && endsWithLog; System.out.println("Is '" + logFileName + "' a temporary log file? " + isTempLogFile); String anotherFile = "data_report.txt"; boolean startsWithData = anotherFile.startsWith("data_"); boolean endsWithTxt = anotherFile.endsWith(".txt"); System.out.println("Does '" + anotherFile + "' start with 'data_'? " + startsWithData); System.out.println("Does '" + anotherFile + "' end with '.txt'? " + endsWithTxt); boolean isDataTxtFile = startsWithData && endsWithTxt; System.out.println("Is '" + anotherFile + "' a data text file? " + isDataTxtFile); } }이 코드에서:
- 문자열의 시작 부분을 확인하기 위해
startsWith()메서드를 도입합니다. - 논리 AND 연산자 (
&&) 를 사용하여startsWith()와endsWith()의 결과를 결합합니다.&&연산자는 두 조건이 모두true인 경우에만true를 반환합니다.
- 문자열의 시작 부분을 확인하기 위해
HelloJava.java파일을 저장합니다.터미널에서 프로그램을 컴파일합니다.
javac HelloJava.java컴파일된 프로그램을 실행합니다.
java HelloJava다음과 유사한 출력을 볼 수 있습니다.
Does 'temp_application_error.log' start with 'temp_'? true Does 'temp_application_error.log' end with '.log'? true Is 'temp_application_error.log' a temporary log file? true Does 'data_report.txt' start with 'data_'? true Does 'data_report.txt' end with '.txt'? true Is 'data_report.txt' a data text file? true이 출력은
startsWith()와endsWith()를 논리 연산자와 함께 사용하여 보다 복잡한 문자열 검사를 수행하는 방법을 보여줍니다.
이제 startsWith()와 endsWith()를 모두 사용하고 이를 결합하여 문자열의 시작과 끝을 모두 확인하는 방법을 배웠습니다. 이러한 메서드는 Java 에서 문자열 조작 및 유효성 검사를 위한 기본적인 도구입니다.
요약
이 랩에서는 Java 에서 endsWith() 메서드를 사용하여 문자열이 특정 접미사로 끝나는지 확인하는 방법을 배웠습니다. 파일 확장자와 같은 접미사를 확인하기 위한 기본 사용법을 살펴보고, 문자열이 지정된 접미사로 끝나는지 여부를 나타내는 부울 값을 반환하는 방식을 관찰했습니다.
또한 endsWith() 메서드의 대소문자 구분을 조사하고, 비교 전에 문자열과 접미사를 동일한 대소문자로 변환하여 대소문자를 구분하지 않는 검사를 수행하는 방법을 배웠습니다. 마지막으로, startsWith() 및 endsWith() 메서드를 결합하여 문자열이 특정 접두사 및 접미사로 시작하고 끝나는지 확인하여, 이러한 메서드를 함께 사용하여 보다 복잡한 문자열 유효성 검사를 수행하는 방법을 시연했습니다.



