programing

정규식을 사용하지 않고 자바에서 문자가 문자인지 숫자인지 확인하는 가장 좋은 방법은 무엇입니까?

yoursource 2022. 8. 10. 22:55
반응형

정규식을 사용하지 않고 자바에서 문자가 문자인지 숫자인지 확인하는 가장 좋은 방법은 무엇입니까?

string.charAt(index)가 Java에서 정규 표현을 사용하지 않고 A-z 문자 또는 숫자인지 확인하는 가장 좋은 방법 및/또는 가장 쉬운 방법은 무엇입니까?고마워요.

Character.isDigit(string.charAt(index))(JavaDoc)가 숫자일 경우 true를 반환합니다.
Character.isLetter(string.charAt(index))(JavaDoc)는 편지일 경우 true를 반환합니다.

라틴 문자인지 10진수인지 확인하는 기능을 찾고 있습니다.부터char c = 255(인쇄 가능한 버전에서는 and로 되어 있으며, 이 버전은 에 의해 레터로 간주됩니다).Character.isLetter(c)이 기능은 대부분의 개발자가 찾고 있는 기능이라고 생각합니다.

private static boolean isLetterOrDigit(char c) {
    return (c >= 'a' && c <= 'z') ||
           (c >= 'A' && c <= 'Z') ||
           (c >= '0' && c <= '9');
}

정답이 나타내듯이(자세히 검토하면!), 당신의 질문은 애매합니다."A-z 문자" 또는 숫자가 무슨 뜻입니까?

  • 문자가 Unicode 문자인지 숫자인지 확인하려면Character.isLetter그리고.Character.isDigit방법들.

  • 문자가 ASCII 문자인지 숫자인지 알고 싶다면 가장 좋은 방법은 문자 범위 'a'에서 'z', 'A'에서 'Z', '0'에서 '9'와 비교하여 테스트하는 것입니다.

모든 ASCII 문자/자리는 Unicode 문자/자리...이지만 ASCII가 아닌 Unicode 문자/자리 문자가 많습니다.예를 들어 악센트 문자, 키릴 문자, 산스크리트 문자...


일반적인 해결책은 다음과 같습니다.

Character.UnicodeBlock block = Character.UnicodeBlock.of(someCodePoint);

그런 다음 해당 블록이 관심 있는 블록 중 하나인지 테스트합니다.경우에 따라서는 여러 블록을 테스트해야 합니다.예를 들어, 키릴 문자는 4개, 라틴어는 7개 이상의 코드 블록이 있습니다.Character.UnicodeBlockclass는 well-known 블록의 정적 상수를 정의합니다.javadocs 를 참조해 주세요.

모든 코드 포인트는 최대 한 블록 안에 있습니다.

Java Character 클래스에는 버전 1.0.2 이후 isLetterOrDigit 메서드가 있습니다.

최선의 방법은 모르겠지만, 이건 꽤 간단한 것 같아요.

Character.isDigit(str.charAt(index))
Character.isLetter(str.charAt(index))
// check if ch is a letter
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
    // ...

// check if ch is a digit
if (ch >= '0' && ch <= '9')
    // ...

// check if ch is a whitespace
if ((ch == ' ') || (ch =='\n') || (ch == '\t'))
    // ...

출처 : https://docs.oracle.com/javase/tutorial/i18n/text/charintro.html

아래 코드를 사용합니다.

Character.isLetterOrDigit(string.charAt(index))

그 가치를 비교합니다.값은 'a'와 'z', 'A'와 'Z', '0'과 '9' 사이여야 합니다.

 import java.util.Scanner;
 public class v{
 public static void main(String args[]){
 Scanner in=new Scanner(System.in);
    String str;
    int l;
    int flag=0;
    System.out.println("Enter the String:");
    str=in.nextLine();
    str=str.toLowerCase();
    str=str.replaceAll("\\s","");
    char[] ch=str.toCharArray();
    l=str.length();
    for(int i=0;i<l;i++){
        if ((ch[i] >= 'a' && ch[i]<= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')){
        flag=0;
        }
        else

        flag++;
        break;
        } 
if(flag==0)
    System.out.println("Onlt char");


}
}

언급URL : https://stackoverflow.com/questions/4047808/what-is-the-best-way-to-tell-if-a-character-is-a-letter-or-number-in-java-withou

반응형