문자가 아닌 문자 처리
이전 단계에서는 Character.isUpperCase()를 사용하여 대문자를 식별했습니다. 그러나 문자열에는 문자뿐만 아니라 숫자, 기호, 공백 및 구두점도 포함될 수 있습니다. 문자열을 분석할 때는 다양한 유형의 문자를 구별해야 하는 경우가 많습니다.
Character 클래스는 다음과 같은 목적으로 유용한 다른 메서드를 제공합니다.
Character.isLetter(char ch): 문자가 문자인지 확인합니다.
Character.isDigit(char ch): 문자가 숫자 (0-9) 인지 확인합니다.
Character.isWhitespace(char ch): 문자가 공백 문자 (예: 공백, 탭, 줄 바꿈) 인지 확인합니다.
StringCompare.java 파일을 다시 수정하여 문자 이외의 문자를 처리하고 문자열에서 다양한 유형의 문자를 계산하는 방법을 보여드리겠습니다. 편집기에서 ~/project/StringCompare.java를 열고 내용을 다음 코드로 바꿉니다.
public class StringCompare {
public static void main(String[] args) {
String text = "Hello World 123!";
int letterCount = 0;
int digitCount = 0;
int whitespaceCount = 0;
int otherCount = 0;
System.out.println("Analyzing the string: \"" + text + "\"");
// Loop through each character in the string
for (int i = 0; i < text.length(); i++) {
char character = text.charAt(i); // Get the character at the current index
// Check the type of the character
if (Character.isLetter(character)) {
letterCount++;
} else if (Character.isDigit(character)) {
digitCount++;
} else if (Character.isWhitespace(character)) {
whitespaceCount++;
} else {
otherCount++; // Characters that are not letters, digits, or whitespace
}
}
System.out.println("Total characters: " + text.length());
System.out.println("Letter count: " + letterCount);
System.out.println("Digit count: " + digitCount);
System.out.println("Whitespace count: " + whitespaceCount);
System.out.println("Other character count: " + otherCount);
}
}
이 업데이트된 코드에서:
- 문자, 숫자, 공백 및 기타 문자에 대한 카운터를 초기화합니다.
- 루프 내에서
if-else if-else 문을 사용하여 Character.isLetter(), Character.isDigit() 및 Character.isWhitespace()를 사용하여 각 문자의 유형을 확인합니다.
- 문자 유형에 따라 해당 카운터를 증가시킵니다.
- 마지막으로 각 유형의 문자에 대한 카운트를 출력합니다.
파일을 저장합니다 (Ctrl + S).
이제 ~/project 디렉토리에서 터미널에서 프로그램을 컴파일하고 실행합니다.
컴파일:
javac StringCompare.java
실행:
java StringCompare
다음과 유사한 출력을 볼 수 있습니다.
Analyzing the string: "Hello World 123!"
Total characters: 16
Letter count: 10
Digit count: 3
Whitespace count: 2
Other character count: 1
이 출력은 문자열 "Hello World 123!"에서 다양한 유형의 문자를 올바르게 식별하고 계산합니다. 문자는 'H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd'(총 10 개) 입니다. 숫자는 '1', '2', '3'(총 3 개) 입니다. 공백 문자는 "Hello"와 "World" 사이의 공백과 "World"와 "123" 사이의 공백 (총 2 개) 입니다. 다른 문자는 '!' (총 1 개) 입니다. 총 개수는 10 + 3 + 2 + 1 = 16 으로 문자열의 길이와 일치합니다.
Character.isLetter(), Character.isDigit() 및 Character.isWhitespace()와 같은 메서드를 사용하면 문자열 내의 다양한 유형의 문자를 처리할 수 있는 보다 강력한 코드를 작성할 수 있습니다. 이는 데이터 유효성 검사, 입력 구문 분석 또는 텍스트 분석과 같은 작업에 매우 중요합니다.