소개
이 랩에서는 Java 에서 Character.isWhitespace() 메서드를 사용하여 문자가 공백인지 확인하는 방법을 배우게 됩니다. 이 메서드가 공백, 탭, 줄 바꿈 및 캐리지 리턴을 포함한 다양한 공백 문자를 식별하는 방법을 살펴봅니다.
실습을 통해 공백, 탭, 그리고 문자 및 숫자와 같은 비공백 문자를 포함한 다양한 문자로 메서드를 테스트하여 Java 프로그래밍에서 해당 동작과 실용적인 적용 방법을 이해하게 됩니다.
이 랩에서는 Java 에서 Character.isWhitespace() 메서드를 사용하여 문자가 공백인지 확인하는 방법을 배우게 됩니다. 이 메서드가 공백, 탭, 줄 바꿈 및 캐리지 리턴을 포함한 다양한 공백 문자를 식별하는 방법을 살펴봅니다.
실습을 통해 공백, 탭, 그리고 문자 및 숫자와 같은 비공백 문자를 포함한 다양한 문자로 메서드를 테스트하여 Java 프로그래밍에서 해당 동작과 실용적인 적용 방법을 이해하게 됩니다.
이 단계에서는 Java 에서 Character.isWhitespace() 메서드를 사용하는 방법을 살펴보겠습니다. 이 메서드는 Character 클래스의 일부이며, 주어진 문자가 공백 문자인지 확인하는 데 사용됩니다. 공백 문자에는 공백, 탭, 줄 바꿈 및 캐리지 리턴이 포함됩니다.
공백을 식별하는 방법을 이해하는 것은 텍스트 구문 분석, 입력 유효성 검사 또는 출력 형식 지정과 같은 많은 프로그래밍 작업에 유용합니다.
이 메서드를 실험하기 위해 새로운 Java 파일을 만들어 보겠습니다.
WebIDE 가 아직 열려 있지 않다면 엽니다.
왼쪽의 파일 탐색기에서 ~/project 디렉토리에 있는지 확인합니다.
~/project 디렉토리 내의 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 "New File"을 선택합니다.
새 파일의 이름을 WhitespaceChecker.java로 지정합니다.
편집기에서 WhitespaceChecker.java 파일을 엽니다.
다음 Java 코드를 복사하여 편집기에 붙여넣습니다.
public class WhitespaceChecker {
public static void main(String[] args) {
char space = ' ';
char tab = '\t';
char newline = '\n';
char letter = 'a';
char digit = '1';
System.out.println("Is '" + space + "' whitespace? " + Character.isWhitespace(space));
System.out.println("Is '" + tab + "' whitespace? " + Character.isWhitespace(tab));
System.out.println("Is '" + newline + "' whitespace? " + Character.isWhitespace(newline));
System.out.println("Is '" + letter + "' whitespace? " + Character.isWhitespace(letter));
System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit));
}
}
이 코드의 새로운 부분을 살펴보겠습니다.
char space = ' ';: char 유형의 space라는 변수를 선언하고 공백 문자를 할당합니다.char tab = '\t';: tab이라는 변수를 선언하고 탭 문자를 할당합니다. \t는 탭을 나타내는 이스케이프 시퀀스입니다.char newline = '\n';: newline이라는 변수를 선언하고 줄 바꿈 문자를 할당합니다. \n은 줄 바꿈을 나타내는 이스케이프 시퀀스입니다.char letter = 'a';: letter라는 변수를 선언하고 문자 'a'를 할당합니다.char digit = '1';: digit라는 변수를 선언하고 문자 '1'을 할당합니다.Character.isWhitespace(space): 여기서 isWhitespace() 메서드를 호출합니다. space 문자를 전달하면 문자가 공백이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 다른 문자에도 동일한 작업을 수행합니다.System.out.println(...): println을 사용하여 isWhitespace() 메서드 호출의 결과와 설명 메시지를 함께 출력합니다.WhitespaceChecker.java 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
이제 코드를 작성했으므로 출력을 확인하기 위해 컴파일하고 실행해야 합니다.
WebIDE 하단의 터미널을 엽니다. ~/project 디렉토리에 있는지 확인합니다.
javac 명령을 사용하여 Java 프로그램을 컴파일합니다.
javac WhitespaceChecker.java
오류가 없으면 이 명령은 ~/project 디렉토리에 WhitespaceChecker.class 파일을 생성합니다.
java 명령을 사용하여 컴파일된 Java 프로그램을 실행합니다.
java WhitespaceChecker
다음과 유사한 출력이 표시됩니다.
Is ' ' whitespace? true
Is ' ' whitespace? true
Is '
' whitespace? true
Is 'a' whitespace? false
Is '1' whitespace? false
이 출력은 isWhitespace() 메서드가 공백, 탭 및 줄 바꿈 문자를 공백으로, 문자 및 숫자 문자를 비공백으로 올바르게 식별했음을 보여줍니다.
Character.isWhitespace() 메서드를 사용하여 다양한 문자를 성공적으로 확인했습니다. 다음 단계에서는 다양한 유형의 공백을 포함하여 이 메서드를 더 많은 예제로 테스트합니다.
이전 단계에서는 단일 공백과 단일 탭 문자로 Character.isWhitespace()를 사용했습니다. 이 단계에서는 여러 공백과 탭이 포함된 문자열로 메서드를 추가로 테스트하여 동작 방식을 확인합니다.
Character.isWhitespace()는 전체 문자열이 아닌 개별 문자에 대해 작동한다는 점을 기억하십시오. 문자열에 공백만 포함되어 있는지 확인하거나 문자열 내의 공백을 처리하려면 일반적으로 문자열을 문자 단위로 반복하고 각 문자에 isWhitespace() 메서드를 적용합니다.
WhitespaceChecker.java 파일을 수정하여 여러 공백과 탭으로 테스트를 포함해 보겠습니다.
WebIDE 편집기에서 WhitespaceChecker.java 파일을 엽니다.
기존 코드를 다음 업데이트된 코드로 바꿉니다.
public class WhitespaceChecker {
public static void main(String[] args) {
char space = ' ';
char tab = '\t';
char newline = '\n';
char letter = 'a';
char digit = '1';
System.out.println("Is '" + space + "' whitespace? " + Character.isWhitespace(space));
System.out.println("Is '" + tab + "' whitespace? " + Character.isWhitespace(tab));
System.out.println("Is '" + newline + "' whitespace? " + Character.isWhitespace(newline));
System.out.println("Is '" + letter + "' whitespace? " + Character.isWhitespace(letter));
System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit));
System.out.println("\nTesting with multiple characters:");
String testString1 = " "; // Three spaces
String testString2 = "\t\t"; // Two tabs
String testString3 = " \t "; // Spaces and tabs
String testString4 = "Hello World"; // Contains space, but also letters
System.out.println("Checking characters in: \"" + testString1 + "\"");
for (int i = 0; i < testString1.length(); i++) {
char c = testString1.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
System.out.println("Checking characters in: \"" + testString2 + "\"");
for (int i = 0; i < testString2.length(); i++) {
char c = testString2.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
System.out.println("Checking characters in: \"" + testString3 + "\"");
for (int i = 0; i < testString3.length(); i++) {
char c = testString3.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
System.out.println("Checking characters in: \"" + testString4 + "\"");
for (int i = 0; i < testString4.length(); i++) {
char c = testString4.charAt(i);
System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));
}
}
}
새로운 코드에 대한 설명은 다음과 같습니다.
String testString1 = " ";: 세 개의 공백 문자가 있는 문자열을 만듭니다.String testString2 = "\t\t";: 두 개의 탭 문자가 있는 문자열을 만듭니다.String testString3 = " \t ";: 공백과 탭이 혼합된 문자열을 만듭니다.String testString4 = "Hello World";: 문자 및 공백이 있는 문자열을 만듭니다.for (int i = 0; i < testString1.length(); i++): 문자열의 각 문자를 반복하는 for 루프입니다.char c = testString1.charAt(i);: 루프 내에서 charAt(i)는 현재 인덱스 i의 문자를 가져와 c 변수에 저장합니다.System.out.println(" Is '" + (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) + "' whitespace? " + Character.isWhitespace(c));: 이 줄은 Character.isWhitespace(c)를 사용하여 현재 문자 c가 공백인지 여부를 출력합니다. (c == ' ' ? " " : (c == '\t' ? "\\t" : c)) 부분은 출력에서 공백 및 탭 문자에 대한 가시적인 표현을 인쇄하는 데 사용되는 삼항 연산자입니다.WhitespaceChecker.java 파일을 저장합니다.
이제 업데이트된 프로그램을 컴파일하고 실행해 보겠습니다.
WebIDE 하단의 터미널을 엽니다. ~/project 디렉토리에 있는지 확인합니다.
Java 프로그램을 컴파일합니다.
javac WhitespaceChecker.java
컴파일된 Java 프로그램을 실행합니다.
java WhitespaceChecker
다음과 유사한 출력이 표시되어야 하며, 테스트 문자열의 각 문자에 대한 결과가 포함됩니다.
Is ' ' whitespace? true
Is ' ' whitespace? true
Is '
' whitespace? true
Is 'a' whitespace? false
Is '1' whitespace? false
Testing with multiple characters:
Checking characters in: " "
Is ' ' whitespace? true
Is ' ' whitespace? true
Is ' ' whitespace? true
Checking characters in: " "
Is '\t' whitespace? true
Is '\t' whitespace? true
Checking characters in: " "
Is ' ' whitespace? true
Is ' ' whitespace? true
Is '\t' whitespace? true
Is ' ' whitespace? true
Is ' ' whitespace? true
Checking characters in: "Hello World"
Is 'H' whitespace? false
Is 'e' whitespace? false
Is 'l' whitespace? false
Is 'l' whitespace? false
Is 'o' whitespace? false
Is ' ' whitespace? true
Is 'W' whitespace? false
Is 'o' whitespace? false
Is 'r' whitespace? false
Is 'l' whitespace? false
Is 'd' whitespace? false
이 출력은 Character.isWhitespace()가 문자열 내의 개별 공백 및 탭 문자를 올바르게 식별하며, 연속적으로 나타나거나 다른 문자와 혼합된 경우에도 마찬가지임을 확인합니다.
문자를 반복하여 여러 공백과 탭이 포함된 문자열로 Character.isWhitespace()를 성공적으로 테스트했습니다. 다음 단계에서는 메서드가 비공백 문자를 처리하는 방식을 살펴보겠습니다.
이전 단계에서는 Character.isWhitespace()를 사용하여 공백 문자를 식별하는 데 집중했습니다. 이제 이 메서드가 공백으로 간주되지 않는 문자를 어떻게 처리하는지 명시적으로 보여드리겠습니다. 이를 통해 메서드가 수행하는 작업과 식별하지 않는 작업에 대한 이해를 강화할 수 있습니다.
이전 예제 (예: 'a' 및 '1') 에서 이미 일부 비공백 문자를 포함했지만, WhitespaceChecker.java 파일에 몇 가지 더 다양한 예제를 추가해 보겠습니다.
WebIDE 편집기에서 WhitespaceChecker.java 파일을 엽니다.
기존 System.out.println 문 뒤, 문자열을 반복하는 루프 앞의 main 메서드 내에 다음 코드 줄을 추가합니다. System.out.println("Is '" + digit + "' whitespace? " + Character.isWhitespace(digit)); 줄 뒤에 추가할 수 있습니다.
char punctuation = '.';
char symbol = '$';
char controlChar = '\u0000'; // Null character
System.out.println("Is '" + punctuation + "' whitespace? " + Character.isWhitespace(punctuation));
System.out.println("Is '" + symbol + "' whitespace? " + Character.isWhitespace(symbol));
System.out.println("Is U+0000 whitespace? " + Character.isWhitespace(controlChar)); // Printing control chars might not display correctly
추가한 새로운 문자를 살펴보겠습니다.
char punctuation = '.';: 구두점입니다.char symbol = '$';: 기호 문자입니다.char controlChar = '\u0000';: 널 문자 (null character) 에 대한 유니코드 이스케이프 시퀀스이며, 제어 문자입니다. Character.isWhitespace()는 유니코드 표준에서 공백으로 간주되는 특정 제어 문자도 확인합니다.WhitespaceChecker.java 파일을 저장합니다.
이제 업데이트된 프로그램을 컴파일하고 실행하여 이러한 새로운 문자에 대한 출력을 확인해 보겠습니다.
WebIDE 하단의 터미널을 엽니다. ~/project 디렉토리에 있는지 확인합니다.
Java 프로그램을 컴파일합니다.
javac WhitespaceChecker.java
컴파일된 Java 프로그램을 실행합니다.
java WhitespaceChecker
다음과 유사한 출력이 표시되어야 하며, 새로운 문자에 대한 결과가 포함됩니다.
Is ' ' whitespace? true
Is ' ' whitespace? true
Is '
' whitespace? true
Is 'a' whitespace? false
Is '1' whitespace? false
Is '.' whitespace? false
Is '$' whitespace? false
Is U+0000 whitespace? false
Testing with multiple characters:
Checking characters in: " "
Is ' ' whitespace? true
Is ' ' whitespace? true
Is ' ' whitespace? true
Checking characters in: " "
Is '\t' whitespace? true
Is '\t' whitespace? true
Checking characters in: " "
Is ' ' whitespace? true
Is ' ' whitespace? true
Is '\t' whitespace? true
Is ' ' whitespace? true
Is ' ' whitespace? true
Checking characters in: "Hello World"
Is 'H' whitespace? false
Is 'e' whitespace? false
Is 'l' whitespace? false
Is 'l' whitespace? false
Is 'o' whitespace? false
Is ' ' whitespace? true
Is 'W' whitespace? false
Is 'o' whitespace? false
Is 'r' whitespace? false
Is 'l' whitespace? false
Is 'd' whitespace? false
출력에서 볼 수 있듯이 구두점 ('.') 과 기호 ('$') 는 올바르게 비공백으로 식별됩니다. 널 문자 (\u0000) 도 Character.isWhitespace()에 의해 비공백으로 식별됩니다. 이 메서드는 유니코드 표준에서 공백으로 정의된 문자, 즉 공백, 탭, 줄 바꿈, 캐리지 리턴, 폼 피드 (\f) 및 특정 기타 제어 문자 및 공백 구분 기호를 특별히 확인합니다.
이제 구두점, 기호 및 제어 문자와 같은 표준 공백 및 비공백 문자를 포함하여 다양한 유형의 문자에 대해 Character.isWhitespace()가 어떻게 동작하는지 확인했습니다. 이것으로 Character.isWhitespace() 메서드에 대한 탐색을 완료했습니다.
이 Lab 에서는 Character.isWhitespace() 메서드를 사용하여 Java 에서 문자가 공백인지 확인하는 방법을 배웠습니다. 이 메서드가 공백, 탭 및 줄 바꿈과 같은 일반적인 공백 문자를 식별하는 방법을 살펴보았습니다.
공백, 탭, 문자 및 숫자와 같은 비공백 문자를 포함한 다양한 문자를 테스트하는 간단한 Java 프로그램을 만들어 Character.isWhitespace() 메서드를 사용하는 연습을 했습니다. 이 실습을 통해 Java 코드에서 공백을 식별하고 처리하기 위한 메서드의 실제 적용을 보여주었습니다.