如何快速检查Java String上的各种字母包含条件?

时间:2015-10-26 17:26:53

标签: java string ascii

检查Java中String变量的以下条件的快速(执行时间)和紧凑(代码量)方式是什么:

  1. 变量包含任何英文字母(大写或小写,因此a-zA-Z
  2. 变量仅包含此类字母
  3. 至少X%的字符是这样的字母
  4. 以任何此类字母开头

1 个答案:

答案 0 :(得分:0)

Character.isLetter()方法告诉char是否是一个字母。它实际上适用于任何语言,而不仅仅是英语。迭代String的所有字符,让它称之为text并计算字母。

int letters = 0;
for (char c : text.toCharArray()) {
    if (Character.isLetter(c) {
        ++letters;
    }
}

或者您更喜欢Java 8流。

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
}