ada*_*shr 130
你想要什么?速度还是简单?为了速度,请采用基于循环的方法.为简单起见,请采用基于RegEx的单线程方法.
速度
public boolean isAlpha(String name) {
char[] chars = name.toCharArray();
for (char c : chars) {
if(!Character.isLetter(c)) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
简单
public boolean isAlpha(String name) {
return name.matches("[a-zA-Z]+");
}
Run Code Online (Sandbox Code Playgroud)
Max*_*ysh 64
Java 8 lambda表达式.既快又简单.
boolean allLetters = someString.chars().allMatch(Character::isLetter);
Run Code Online (Sandbox Code Playgroud)
一个快速的方法是:
public boolean isStringAlpha(String aString) {
int charCount = 0;
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if (aString.length() == 0) {
return false; //zero length string ain't alpha
}
for (int i = 0; i < aString.length(); i++) {
for (int j = 0; j < alphabet.length(); j++) {
if (aString.substring(i, i + 1).equals(alphabet.substring(j, j + 1))
|| aString.substring(i, i + 1).equals(alphabet.substring(j, j + 1).toLowerCase())) {
charCount++;
}
}
if (charCount != (i + 1)) {
System.out.println("\n**Invalid input! Enter alpha values**\n");
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
因为您不必运行整体aString
来检查它是否不是alpha字符串.
小智 6
我使用了这个正则表达式(".*[a-zA-Z]+.*")
.使用if not
语句,它将避免所有在前面,末尾或任何类型的其他字符之间有字母的表达式.
String strWithLetters = "123AZ456";
if(! Pattern.matches(".*[a-zA-Z]+.*", str1))
return true;
else return false
Run Code Online (Sandbox Code Playgroud)
首次导入模式:
import java.util.regex.Pattern;
Run Code Online (Sandbox Code Playgroud)
然后使用以下简单代码:
String s = "smith23";
if (Pattern.matches("[a-zA-Z]+",s)) {
// Do something
System.out.println("Yes, string contains letters only");
}else{
System.out.println("Nope, Other characters detected");
}
Run Code Online (Sandbox Code Playgroud)
这将输出:
否,检测到其他字符
归档时间: |
|
查看次数: |
256324 次 |
最近记录: |