簡體   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