在不使用正则表达式的情况下,识别 string.charAt (index)是 A-z 字母还是 Java 中的数字的最佳和/或最简单的方法是什么?谢谢。
比较它的值,它应该在‘ a’和‘ z’之间,‘ A’和‘ Z’之间,‘0’和‘9’之间
如果是一个数字,Character.isDigit(string.charAt(index))(JavaDoc)将返回 true 如果它是一个字母,Character.isLetter(string.charAt(index))(JavaDoc)将返回 true
Character.isDigit(string.charAt(index))
Character.isLetter(string.charAt(index))
我不知道什么是最好的,但我觉得很简单:
Character.isDigit(str.charAt(index)) Character.isLetter(str.charAt(index))
正如答案所示(如果你仔细检查它们的话!)你的问题很模棱两可。你说的“ A-Z 字母”或数字是什么意思?
如果您想知道某个字符是 Unicode字母还是数字,请使用 Character.isLetter和 Character.isDigit方法。
Character.isLetter
Character.isDigit
如果您想知道一个字符是 ASCII字母还是数字,那么最好的方法是通过比较字符范围‘ a’到‘ z’、‘ A’到‘ Z’和‘0’到‘9’来进行测试。
注意,所有的 ASCII 字母/数字都是 Unicode 字母/数字... ... 但是有许多 Unicode 字母/数字字符不是 ASCII。例如,重音字母,西里尔字母,梵文,..。
一般的解决办法是这样做:
Character.UnicodeBlock block = Character.UnicodeBlock.of(someCodePoint);
然后测试,看看这个块是否是您感兴趣的块之一。在某些情况下,您需要测试多个块。例如,至少有4个西里尔字符代码块和7个拉丁字符代码块。Character.UnicodeBlock类为已知块定义静态常量; 请参见 Javadocs。
Character.UnicodeBlock
注意,任何代码点都将位于 最多的一个块中。
Java 字符类从1.0.2版开始就有一个 是字母或数字方法
我正在寻找一个函数,只检查它是一个拉丁字母或十进制数。因为 char c = 255,在可打印的版本是 草坪,并认为作为一个字母的 Character.isLetter(c)。 我认为大多数开发人员都在寻找这个功能:
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'); }
// 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"); } }
使用下面的代码
Character.isLetterOrDigit(string.charAt(index))