如何快速检查Java字符串上的各种字母包含条件?
在Java中,检查如何快速检查Java字符串上的各种字母包含条件?,java,string,ascii,Java,String,Ascii,在Java中,检查字符串变量的以下条件的快速(执行时间)和紧凑(代码量)方法是什么: 变量包含任何英文字母(大写或小写,因此a-zA-Z) 变量只包含这样的字母 至少X%的字符是这样的字母 以任何这样的信开头 Character.isleter()方法告知字符是否为字母。它实际上适用于任何语言,不仅仅是英语。迭代字符串的所有字符让我们称之为text并计算字母数 int letters = 0; for (char c : text.toCharArray()) { if (Charact
字符串
变量的以下条件的快速(执行时间)和紧凑(代码量)方法是什么:
a-zA-Z
)Character.isleter()
方法告知字符是否为字母。它实际上适用于任何语言,不仅仅是英语。迭代字符串的所有字符
让我们称之为text
并计算字母数
int letters = 0;
for (char c : text.toCharArray()) {
if (Character.isLetter(c) {
++letters;
}
}
或者如果您更喜欢Java8流
long letters = text.chars().filter(Character::isLetter).count();
获得字母数后:
if (letters > 0) {
// variable contains any English letters
}
if (letters == text.length()) {
// variable contains only English letters
}
if ((double)letters/(double)text.length() >= (double)X/100.0) {
// at least X% of chars are letters
}
if (text.length() > 0 && Character.isLetter(text.charAt(0))) {
// starts with letter
}
Character.isleter()
方法告知字符是否为字母。它实际上适用于任何语言,不仅仅是英语。迭代字符串的所有字符
让我们称之为text
并计算字母数
int letters = 0;
for (char c : text.toCharArray()) {
if (Character.isLetter(c) {
++letters;
}
}
或者如果您更喜欢Java8流
long letters = text.chars().filter(Character::isLetter).count();
获得字母数后:
if (letters > 0) {
// variable contains any English letters
}
if (letters == text.length()) {
// variable contains only English letters
}
if ((double)letters/(double)text.length() >= (double)X/100.0) {
// at least X% of chars are letters
}
if (text.length() > 0 && Character.isLetter(text.charAt(0))) {
// starts with letter
}
正则表达式?除了你的第三个选项。一个IntStream,其中anyMatch为1,allMatch为2,filter and count()为3,limit and anyMatch为4。正则表达式?除了第三个选项之外。一个IntStream,其中anyMatch为1,allMatch为2,filter and count()为3,limit and anyMatch为4。