检查字符串是否具有字母的所有字母


问题内容

检查给定字符串中所有字母的最佳逻辑是什么?

如果提供的字符串中所有26个字母均可用,我想检查一下并执行操作。例如。用五打酒壶装满我的盒子。

  1. 使用哈希会有用吗?
  2. 还是使用位图?或其他方式?

顺便说一句,我的代码将使用Java。


问题答案:

尚未完全优化:

public static void main(String... a) {
    String s = "Pack my box with five dozen liquor jugs.";
    int i=0;
    for(char c : s.toCharArray()) {
        int x = Character.toUpperCase(c);
        if (x >= 'A' && x <= 'Z') {
            i |= 1 << (x - 'A');
        }
    }
    if (i == (i | ((1 << (1 + 'Z' - 'A')) - 1))) {
        System.out.println("ok");
    }
}