소개
이 랩에서는 Java 에서 문자열이 소문자인지 확인하는 방법을 배우게 됩니다. toLowerCase()와 equalsIgnoreCase()를 사용하여 대소문자를 무시하고 문자열을 비교하는 것부터 시작하여, 이를 달성하기 위한 다양한 방법을 살펴볼 것입니다.
그런 다음 문자열을 반복하고 Character.isLowerCase()를 사용하여 각 문자를 개별적으로 확인하는 방법을 배우게 됩니다. 마지막으로, 이 검사를 수행할 때 문자 문자가 아닌 문자를 처리하는 방법을 다룰 것입니다.
toLowerCase() 를 사용한 문자열 비교
이 단계에서는 문자의 대소문자를 무시하고 Java 에서 문자열을 비교하는 방법을 배우게 됩니다. 이는 대문자 또는 소문자를 사용하는지에 관계없이 두 문자열이 동일한지 확인하려는 경우 흔히 사용되는 작업입니다.
이를 연습하기 위해 새로운 Java 파일을 만들어 보겠습니다.
WebIDE 가 아직 열려 있지 않다면 엽니다.
왼쪽의 파일 탐색기에서
~/project디렉토리에 있는지 확인합니다.파일 탐색기의 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 "새 파일"을 선택한 다음 이름을
CaseInsensitiveCompare.java로 지정합니다.편집기에서
CaseInsensitiveCompare.java파일을 엽니다.다음 코드를 복사하여 편집기에 붙여넣습니다.
public class CaseInsensitiveCompare { public static void main(String[] args) { String str1 = "Hello"; String str2 = "hello"; String str3 = "World"; // Comparing strings directly (case-sensitive) boolean areEqualCaseSensitive = str1.equals(str2); System.out.println("Case-sensitive comparison of \"" + str1 + "\" and \"" + str2 + "\": " + areEqualCaseSensitive); // Comparing strings ignoring case boolean areEqualCaseInsensitive = str1.equalsIgnoreCase(str2); System.out.println("Case-insensitive comparison of \"" + str1 + "\" and \"" + str2 + "\": " + areEqualCaseInsensitive); // Comparing str1 and str3 ignoring case boolean areEqualStr1Str3 = str1.equalsIgnoreCase(str3); System.out.println("Case-insensitive comparison of \"" + str1 + "\" and \"" + str3 + "\": " + areEqualStr1Str3); } }이 코드에서:
- 세 개의
String변수str1,str2,str3를 선언합니다. str1.equals(str2)는 대소문자를 구분하는 비교를 수행합니다. "Hello"와 "hello"는 대문자 'H' 때문에 다르므로false를 반환합니다.str1.equalsIgnoreCase(str2)는 대소문자를 구분하지 않는 비교를 수행합니다. 대소문자를 무시하면 "Hello"와 "hello"가 같으므로true를 반환합니다.- 또한 다른 단어가 여전히 다른 것으로 간주됨을 보여주기 위해
str1과str3을 대소문자를 무시하고 비교합니다.
- 세 개의
파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
WebIDE 하단에서 터미널을 엽니다.
~/project디렉토리에 있는지 확인합니다.javac명령을 사용하여 Java 프로그램을 컴파일합니다.javac CaseInsensitiveCompare.java오류가 없으면 출력이 표시되지 않습니다.
~/project디렉토리에CaseInsensitiveCompare.class파일이 생성됩니다.java명령을 사용하여 컴파일된 Java 프로그램을 실행합니다.java CaseInsensitiveCompare다음 출력이 표시됩니다.
Case-sensitive comparison of "Hello" and "hello": false Case-insensitive comparison of "Hello" and "hello": true Case-insensitive comparison of "Hello" and "World": false이 출력은
equals()가 대소문자를 구분하고equalsIgnoreCase()가 대소문자를 무시함을 확인합니다.
equalsIgnoreCase()를 사용하면 문자가 대문자인지 소문자인지에 관계없이 문자열을 편리하게 비교할 수 있습니다.
루프에서 Character.isLowerCase() 사용
이전 단계에서는 대소문자를 무시하고 전체 문자열을 비교하는 방법을 배웠습니다. 때로는 문자열 내의 개별 문자를 검사하고 소문자 또는 대문자인지 확인해야 할 수 있습니다. Java 는 Character 클래스에서 이를 위한 유용한 메서드를 제공합니다.
이 단계에서는 루프 내에서 Character.isLowerCase() 메서드를 사용하여 문자열의 소문자 수를 계산합니다.
WebIDE 가 아직 열려 있지 않다면 엽니다.
왼쪽의 파일 탐색기에서
~/project디렉토리에 있는지 확인합니다.~/project디렉토리에CountLowercase.java라는 새 파일을 만듭니다.편집기에서
CountLowercase.java파일을 엽니다.다음 코드를 복사하여 편집기에 붙여넣습니다.
public class CountLowercase { public static void main(String[] args) { String text = "Hello World 123!"; int lowercaseCount = 0; // 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 if the character is a lowercase letter if (Character.isLowerCase(character)) { lowercaseCount++; // Increment the counter if it's lowercase } } System.out.println("The string is: \"" + text + "\""); System.out.println("Number of lowercase letters: " + lowercaseCount); } }이 코드를 자세히 살펴보겠습니다.
- 대문자, 소문자, 숫자 및 기호가 혼합된
String변수text가 있습니다. - 정수 변수
lowercaseCount를 0 으로 초기화합니다. 이 변수는 소문자 수를 저장합니다. for루프를 사용하여 문자열의 각 문자를 반복합니다. 루프는 인덱스 0 부터 문자열 길이 (포함하지 않음) 까지 실행됩니다.text.charAt(i)는 현재 인덱스i의 문자를 가져옵니다.Character.isLowerCase(character)는 주어진character가 소문자이면true를 반환하고, 그렇지 않으면false를 반환하는 메서드입니다.Character.isLowerCase()가true를 반환하면lowercaseCount를 증가시킵니다.- 마지막으로, 원래 문자열과 소문자 총 수를 출력합니다.
- 대문자, 소문자, 숫자 및 기호가 혼합된
파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
WebIDE 하단에서 터미널을 엽니다.
~/project디렉토리에 있는지 확인합니다.Java 프로그램을 컴파일합니다.
javac CountLowercase.java컴파일이 성공하면
CountLowercase.class파일이 생성됩니다.컴파일된 Java 프로그램을 실행합니다.
java CountLowercase다음 출력이 표시됩니다.
The string is: "Hello World 123!" Number of lowercase letters: 8출력은 문자열 "Hello World 123!"에 8 개의 소문자 ('e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd') 가 있음을 보여줍니다.
루프 내에서 Character.isLowerCase()를 사용하면 문자열의 문자별 분석을 수행할 수 있으며, 이는 다양한 텍스트 처리 작업에 유용합니다.
문자가 아닌 문자 무시
이전 단계에서는 소문자 수를 계산했습니다. 그러나 문자열에는 숫자, 공백 및 기호와 같은 다양한 문자가 포함될 수 있습니다. 문자열을 비교하거나 내용을 분석할 때 이러한 문자 이외의 문자를 무시하려는 경우가 많습니다.
이 단계에서는 Character.isLetter() 메서드를 사용하여 문자 문자만 처리하고 다른 모든 문자를 무시하도록 프로그램을 수정합니다.
WebIDE 가 아직 열려 있지 않다면 엽니다.
이전 단계에서 생성한
CountLowercase.java파일을 엽니다.문자가 소문자인지 확인하기 전에 문자가 문자인지 확인하는 코드를 포함하도록 코드를 수정합니다. 기존 코드를 다음으로 바꿉니다.
public class CountLowercase { public static void main(String[] args) { String text = "Hello World 123!"; int lowercaseCount = 0; StringBuilder lettersOnly = new StringBuilder(); // To store only letter characters // 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 if the character is a letter if (Character.isLetter(character)) { lettersOnly.append(character); // Add the letter to our new string // Check if the letter is lowercase if (Character.isLowerCase(character)) { lowercaseCount++; // Increment the counter if it's lowercase } } } System.out.println("The original string is: \"" + text + "\""); System.out.println("Letters only string: \"" + lettersOnly.toString() + "\""); System.out.println("Number of lowercase letters (ignoring non-letters): " + lowercaseCount); } }추가 및 변경 사항은 다음과 같습니다.
lettersOnly라는StringBuilder를 도입했습니다.StringBuilder는 특히 루프에서 문자를 추가할 때 문자열을 효율적으로 구축하는 데 사용됩니다.- 루프 내에서
if (Character.isLetter(character))조건을 추가했습니다. 이는 현재character가 문자 (대문자 또는 소문자) 인지 확인합니다. - 문자가 문자인 경우
lettersOnly.append(character)를 사용하여lettersOnlyStringBuilder에 추가합니다. Character.isLowerCase(character)확인은 이제Character.isLetter()확인 내부에 중첩되어 실제로 문자인 문자 중에서만 소문자를 계산하도록 합니다.- 마지막으로, 원래 문자열, 문자만 포함하는 문자열 및 해당 문자 중 소문자 수를 출력합니다.
파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
WebIDE 하단에서 터미널을 엽니다.
~/project디렉토리에 있는지 확인합니다.수정된 Java 프로그램을 컴파일합니다.
javac CountLowercase.java컴파일 오류가 없는지 확인합니다.
컴파일된 Java 프로그램을 실행합니다.
java CountLowercase다음 출력이 표시됩니다.
The original string is: "Hello World 123!" Letters only string: "HelloWorld" Number of lowercase letters (ignoring non-letters): 8"Letters only string"이 이제 "HelloWorld"만 포함하고 소문자 수가 여전히 8 인 것을 확인하십시오. 실제 문자 중에서만 소문자를 계산하기 때문입니다.
Character.isLetter()를 사용하면 추가로 처리하기 전에 문자열에서 영숫자가 아닌 문자를 필터링해야 할 때 매우 유용합니다.
요약
이 Lab 에서는 Java 에서 문자열이 소문자인지 확인하는 방법을 배웠습니다. 두 가지 주요 메서드를 살펴보았습니다. 먼저, equalsIgnoreCase()를 사용하여 대소문자를 구분하지 않는 비교를 수행하여 두 문자열이 문자 대소문자와 관계없이 동일한지 확인하는 방법을 시연했습니다.
둘째, 전체 세부 정보는 제공되지 않았지만, 단계에 따라 루프를 사용하여 문자열을 반복하고 Character.isLowerCase()를 활용하여 개별 문자가 소문자인지 확인하는 방법을 배우고, 이 과정에서 문자 이외의 문자를 무시하는 방법도 고려할 것입니다.



