繁体   English   中英

Java:验证字符串是否仅由另一个字符串的字母组成

[英]Java: verify if a string is formed only by letters from another string

我想做一个具有String a和String b的函数。 我想验证字符串a是否仅由字符串b中的字符/字母组成。

例如:

String a="abz";
    String b="abecxe";

结果为假,因为字符串b不包含字符串a中的“ z”。

谢谢!

假设您可以编写代码以防止输入无效/无效:

return b.replaceAll("["+a+"]", "").length() == 0;

如前所述,这对于任意字符串都将失败。

for (int i = 0; i < b.length(); i++) {
    if (!a.contains(b.substring(i, i + 1)) {
        return false;
    }
}
return true;

同样,您编写验证。

一种非常简单的方法是编写一个将String转换为字符集的方法,然后利用Set接口的removeAll方法。 您可能需要Apache ArrayUtils类将char[]String转换为Character[]

它可能看起来像这样。

public static boolean containsOnlyCharactersFrom(String first, String second) {
    return charactersIn(first).removeAll(charactersIn(second)).isEmpty();
}

private static Set<Character> charactersIn(String argument) {
    Character[] characterArray = ArrayUtils.toObject(argument.toCharArray());
    return new HashSet<Character>(Arrays.asList(characterArray));
}

谢谢大家!

我用字符串匹配解决了问题(我过去曾尝试过这种方法,但是我错了):

if ( a.matches("[" + b + "]+")) {
                      label1.setText("The String a contains only letters from String b!");
                  } else {
                      label2.setText("The String a contains more letters than String b!");
                  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM