什么是最好的方式来判断一个字符是不是使用正则expression式的Java中的一个字母或数字?
什么是最好的和/或最简单的方法来识别,如果string.charAt(索引)是一个Az字母或Java中的数字,而不使用正则expression式? 谢谢。
Character.isDigit(string.charAt(index))
( JavaDoc )将返回true,如果它是一个数字
Character.isLetter(string.charAt(index))
( JavaDoc )将返回true,如果它是一个字母
正如答案所指出的(如果你仔细检查它们),你的问题是模棱两可的。 “Az信”或数字是什么意思?
-
如果您想知道某个字符是否是Unicode字母或数字,请使用
Character.isLetter
和Character.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"); } }