답변:
Character.isDigit(string.charAt(index))
( JavaDoc ) 숫자 이면 true를 반환합니다.
Character.isLetter(string.charAt(index))
( JavaDoc ) 문자이면 true를 반환합니다.
Character.isLetterOrDigit(string.charAt(index))
두 검증 모두에 사용하십시오 .
라틴 문자 또는 십진수 중 하나인지 확인하는 기능을 찾고 있습니다. 이후 char c = 255
인쇄 가능한 버전은 ├ 이며 Character.isLetter(c)
. 이 기능은 대부분의 개발자가 찾고있는 것입니다.
private static boolean isLetterOrDigit(char c) {
return (c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9');
}
u00ff
는 실제로 문자 ÿ입니다. (움라우트가있는 소문자 y.) ├를 나타내는 코드 포인트는 u251c
입니다.
if (c in 'a'..'z' || с in 'A'..'Z' || c in '0'..'9')
답변에서 알 수 있듯이 (주의 깊게 살펴보면!) 질문이 모호합니다. "Az 문자"또는 숫자는 무엇을 의미합니까?
문자가 유니 코드 문자인지 숫자 인지 알고 싶다면 Character.isLetter
및 Character.isDigit
메서드 를 사용하십시오 .
문자가 ASCII 문자인지 숫자 인지 알고 싶다면 'a'~ 'z', 'A'~ 'Z', '0'문자 범위를 비교하여 테스트하는 것이 가장 좋습니다. '9'.
모든 ASCII 문자 / 숫자는 유니 코드 문자 / 숫자입니다 ... 그러나 ASCII가 아닌 유니 코드 문자 / 숫자 문자가 많이 있습니다. 예를 들어, 악센트 부호가있는 문자, 키릴 문자, 산스크리트어, ...
일반적인 해결책은 다음과 같습니다.
Character.UnicodeBlock block = Character.UnicodeBlock.of(someCodePoint);
그런 다음 블록이 관심있는 블록 중 하나인지 테스트합니다. 경우에 따라 여러 블록을 테스트해야합니다. 예를 들어, 키릴 문자에 대한 코드 블록이 (적어도) 4 개, 라틴어에 7 개가 있습니다. 이 Character.UnicodeBlock
클래스는 잘 알려진 블록에 대한 정적 상수를 정의합니다. 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
if a string.charAt(index) is an A-z letter
. 그래서 우리는 다른 언어에 대해 말하는 것이 아닙니다.
그 가치를 비교하십시오. 'a'와 'z', 'A'와 'Z', '0'과 '9'사이의 값이어야합니다.
Character.isLetter()
방법 보다 낫 습니까?
Character.isLetter()
초보적 이라고 생각했습니다 . 국제화에 대해 이야기하지 않는 한?
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");
}
}