![](/img/trans.png)
[英]How to check if a String can be formed from the characters of another String in 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.