在Java中,不使用正则表达式,最好或最简单的方法是什么,可以识别一个字符串.charAt(index)是否为A-z字母或数字?谢谢。
我正在寻找一个函数,它只检查是否为拉丁字母或者十进制数字。由于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
。 - Stephen Cif (c in 'a'..'z' || с in 'A'..'Z' || c in '0'..'9')
- Vlad正如答案所示(如果您仔细查看它们!),您的问题存在歧义。您所说的“A-z字母”或数字是什么意思?
如果您想知道一个字符是否为 Unicode 字母或数字,则使用 Character.isLetter
和 Character.isDigit
方法。
如果您想知道一个字符是否为 ASCII 字母或数字,则最好的方法是通过与字符范围'a'到'z','A'到'Z'和'0'进行比较来进行测试'到'9'。
请注意,所有ASCII字母/数字都是Unicode字母/数字...但是有许多Unicode字母/数字字符不是ASCII。例如,重音字母、西里尔文、梵文等。
通用解决方案是这样做:
Character.UnicodeBlock block = Character.UnicodeBlock.of(someCodePoint);
然后测试一下这个代码块是否是你感兴趣的代码块之一。在某些情况下,您需要测试多个代码块。例如, Cyrillic 字符至少有 4 个代码块,而拉丁字符则有 7 个代码块。 Character.UnicodeBlock
类为知名的代码块定义了静态常量;请参阅javadocs。
请注意,任何代码点最多只能属于一个代码块。
Java字符类自版本1.0.2起具有一个isLetterOrDigit方法。
我不知道最好的方法是什么,但这个看起来对我来说相当简单:
Character.isDigit(str.charAt(index))
Character.isLetter(str.charAt(index))
Character.isLetterOrDigit(string.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
本教程介绍了 Java 中的字符编码和 Unicode。Unicode 是一种标准,用于在计算机上表示所有语言的字符。Java 使用 Unicode 字符集来表示字符和字符串。本教程还讨论了 Java 中的文本排序和格式化,以及如何使用不同的字符集进行输入和输出。比较其值。它应该在'a'和'z','A'和'Z','0'和'9'的值之间。
Character.isLetter()
方法更好吗? - IgorGanapolskyCharacter.isLetter()
是基础的。除非我们在谈论国际化? - IgorGanapolsky 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");
}
}
Character.isLetterOrDigit(string.charAt(index))
。 - Aspirant9