什么是最好的方式来判断一个字符是不是使用正则expression式的Java中的一个字母或数字?

什么是最好的和/或最简单的方法来识别,如果string.charAt(索引)是一个Az字母或Java中的数字,而不使用正则expression式? 谢谢。

Character.isDigit(string.charAt(index)) ( JavaDoc )将返回true,如果它是一个数字
Character.isLetter(string.charAt(index)) ( JavaDoc )将返回true,如果它是一个字母

正如答案所指出的(如果你仔细检查它们),你的问题是模棱两可的。 “Az信”或数字是什么意思?

  • 如果您想知道某个字符是否是Unicode字母或数字,请使用Character.isLetterCharacter.isDigit方法。

  • 如果你想知道一个字符是ASCII字母还是数字,那么最好的办法是通过比较字符范围'a'到'z','A'到'Z'和'0'来testing'9'。

请注意,所有ASCII字母/数字都是Unicode字母/数字…但是有许多Unicode字母/数字字符不是ASCII。 例如,重音字母,西里尔文,梵文,…

我正在寻找一个函数,只检查它是拉丁字母还是十进制数字。 由于char c = 255 ,在可打印版本中是并被Character.isLetter(c)视为字母。 我认为这个function是大多数开发人员正在寻找的:

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

自1.0.2版以来,Java Character类具有isLetterOrDigit方法

我不知道最好的,但这对我来说似乎很简单:

 Character.isDigit(str.charAt(index)) Character.isLetter(str.charAt(index)) 

比较它的价值。 它应该在“a”和“z”,“A”和“Z”,“0”和“9”之间,

 // 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

  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"); } }