소개
이 랩에서는 Java 에서 startsWith() 메서드를 사용하여 문자열이 특정 접두사로 시작하는지 확인하는 방법을 배우게 됩니다. 이 실습을 통해 startsWith() 메서드를 적용하고, 다양한 경우에 대한 동작을 테스트하며, null 및 빈 접두사를 처리하는 방식을 이해하게 됩니다. 이 랩을 마치면 이 기본적인 문자열 조작 기술을 능숙하게 사용할 수 있게 됩니다.
이 랩에서는 Java 에서 startsWith() 메서드를 사용하여 문자열이 특정 접두사로 시작하는지 확인하는 방법을 배우게 됩니다. 이 실습을 통해 startsWith() 메서드를 적용하고, 다양한 경우에 대한 동작을 테스트하며, null 및 빈 접두사를 처리하는 방식을 이해하게 됩니다. 이 랩을 마치면 이 기본적인 문자열 조작 기술을 능숙하게 사용할 수 있게 됩니다.
이 단계에서는 Java 에서 문자열이 특정 접두사로 시작하는지 확인하기 위해 startsWith() 메서드를 사용하는 방법을 배우게 됩니다. 이는 텍스트가 시작하는 방식에 따라 텍스트를 처리해야 할 때 흔히 사용되는 작업입니다.
startsWith() 메서드는 Java 의 String 클래스에 속합니다. 이 메서드는 확인하려는 접두사인 String 인수를 받습니다. 문자열이 지정된 접두사로 시작하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
startsWith() 사용을 연습하기 위해 새로운 Java 파일을 만들어 보겠습니다.
WebIDE 의 왼쪽에서 파일 탐색기를 엽니다.
~/project 디렉토리에서 마우스 오른쪽 버튼을 클릭하고 "새 파일"을 선택합니다.
새 파일의 이름을 PrefixChecker.java로 지정합니다.
편집기에서 PrefixChecker.java를 열고 다음 코드를 붙여넣습니다.
public class PrefixChecker {
public static void main(String[] args) {
String text = "Hello, Java!";
String prefix = "Hello";
boolean startsWithPrefix = text.startsWith(prefix);
System.out.println("Does the text start with '" + prefix + "'? " + startsWithPrefix);
}
}
이 코드에서:
String 변수 text를 선언하고 "Hello, Java!"로 초기화합니다.String 변수 prefix를 선언하고 "Hello"로 초기화합니다.text 문자열에서 startsWith() 메서드를 호출하고 prefix를 인수로 전달합니다. 결과 (true 또는 false) 는 boolean 변수 startsWithPrefix에 저장됩니다.파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
이제 이 프로그램을 컴파일하고 실행해 보겠습니다. WebIDE 하단에서 터미널을 엽니다. ~/project 디렉토리에 있는지 확인합니다.
javac 명령을 사용하여 Java 파일을 컴파일합니다.
javac PrefixChecker.java
오류가 없으면 이 명령은 ~/project 디렉토리에 PrefixChecker.class 파일을 생성합니다.
java 명령을 사용하여 컴파일된 프로그램을 실행합니다.
java PrefixChecker
다음 출력을 볼 수 있습니다.
Does the text start with 'Hello'? true
이 출력은 "Hello, Java!" 문자열이 실제로 "Hello" 접두사로 시작함을 확인합니다.
이전 단계에서 startsWith()를 사용하여 접두사를 성공적으로 확인했습니다. 이제 startsWith()가 다양한 경우 (대문자 및 소문자) 를 어떻게 처리하는지 살펴보겠습니다.
기본적으로 startsWith() 메서드는 대소문자를 구분합니다. 즉, "Hello"는 "hello" 또는 "HELLO"와 다른 것으로 간주됩니다. PrefixChecker.java 파일을 수정하여 이를 확인해 보겠습니다.
WebIDE 편집기에서 PrefixChecker.java 파일을 엽니다.
main 메서드를 수정하여 다양한 경우의 검사를 포함합니다. 기존 main 메서드를 다음 코드로 바꿉니다.
public class PrefixChecker {
public static void main(String[] args) {
String text = "Hello, Java!";
String prefix1 = "Hello";
String prefix2 = "hello";
String prefix3 = "HELLO";
boolean startsWithPrefix1 = text.startsWith(prefix1);
boolean startsWithPrefix2 = text.startsWith(prefix2);
boolean startsWithPrefix3 = text.startsWith(prefix3);
System.out.println("Does the text start with '" + prefix1 + "'? " + startsWithPrefix1);
System.out.println("Does the text start with '" + prefix2 + "'? " + startsWithPrefix2);
System.out.println("Does the text start with '" + prefix3 + "'? " + startsWithPrefix3);
}
}
이 업데이트된 코드에서는 text 문자열이 "Hello", "hello", "HELLO"로 시작하는지 확인하고 있습니다.
파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
터미널을 열고 ~/project 디렉토리에 있는지 확인합니다.
수정된 Java 파일을 컴파일합니다.
javac PrefixChecker.java
컴파일된 프로그램을 실행합니다.
java PrefixChecker
다음 출력을 볼 수 있습니다.
Does the text start with 'Hello'? true
Does the text start with 'hello'? false
Does the text start with 'HELLO'? false
이 출력은 startsWith()가 "Hello" 접두사 (원래 문자열의 대소문자와 일치) 에 대해서만 true를 반환하고 "hello" 및 "HELLO"에 대해서는 false를 반환함을 명확하게 보여줍니다. 이는 startsWith()가 대소문자를 구분함을 보여줍니다.
대소문자를 구분하지 않는 접두사 검사를 수행해야 하는 경우, 일반적으로 startsWith()를 사용하기 전에 원래 문자열과 접두사를 동일한 대소문자 (소문자 또는 대문자) 로 변환합니다. 예를 들어, text.toLowerCase().startsWith(prefix.toLowerCase())를 사용할 수 있습니다. 여기서는 구현하지 않지만, 기억해 두면 유용한 기술입니다.
이 단계에서는 접두사가 null이거나 빈 문자열 ("") 일 때 startsWith() 메서드가 어떻게 동작하는지 조사합니다. 이러한 예외적인 경우를 이해하는 것은 견고한 코드를 작성하는 데 중요합니다.
WebIDE 편집기에서 PrefixChecker.java 파일을 엽니다.
main 메서드를 수정하여 null 접두사 및 빈 문자열 접두사로 테스트합니다. 기존 main 메서드를 다음 코드로 바꿉니다.
public class PrefixChecker {
public static void main(String[] args) {
String text = "Hello, Java!";
String prefixNull = null;
String prefixEmpty = "";
// Check with a null prefix
try {
boolean startsWithPrefixNull = text.startsWith(prefixNull);
System.out.println("Does the text start with null? " + startsWithPrefixNull);
} catch (NullPointerException e) {
System.out.println("Checking with null prefix resulted in: " + e);
}
// Check with an empty prefix
boolean startsWithPrefixEmpty = text.startsWith(prefixEmpty);
System.out.println("Does the text start with an empty string? " + startsWithPrefixEmpty);
}
}
이 업데이트된 코드에서:
prefixNull을 선언하고 null로 설정합니다.prefixEmpty를 선언하고 빈 문자열 ""로 설정합니다.prefixNull로 확인할 때 try-catch 블록을 사용합니다. 이는 Java 에서 null 객체에 대해 메서드를 호출하려고 하면 NullPointerException이 발생하기 때문입니다. 이 예외를 catch 하여 어떤 일이 발생하는지 확인합니다.prefixEmpty로 확인합니다.파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
터미널을 열고 ~/project 디렉토리에 있는지 확인합니다.
수정된 Java 파일을 컴파일합니다.
javac PrefixChecker.java
컴파일된 프로그램을 실행합니다.
java PrefixChecker
다음 출력을 볼 수 있습니다.
Checking with null prefix resulted in: java.lang.NullPointerException
Does the text start with an empty string? true
이 출력은 두 가지 중요한 사항을 보여줍니다.
null을 startsWith()의 접두사로 전달하면 NullPointerException이 발생합니다. 그렇기 때문에 메서드를 호출하기 전에 잠재적인 null 값을 처리하는 것이 중요합니다."") 을 startsWith()의 접두사로 전달하면 true를 반환합니다. 이는 모든 문자열이 빈 문자열로 시작하는 것으로 간주될 수 있기 때문입니다.startsWith()가 null 및 빈 문자열을 처리하는 방식을 이해하는 것은 오류를 방지하고 Java 프로그램에서 올바른 로직을 작성하는 데 중요합니다.
이 랩에서는 Java 에서 startsWith() 메서드를 사용하여 문자열이 특정 접두사로 시작하는지 확인하는 방법을 배웠습니다. 간단한 Java 프로그램을 만들고, 컴파일하고, 실행하여 출력을 확인하는 방식으로 이 메서드를 적용하는 연습을 했습니다. 이 기본적인 기술은 Java 프로그래밍에서 다양한 문자열 조작 작업에 필수적입니다.