簡體   English   中英

如何檢查字符串是否包含Java中的某些字符?

[英]How to check if string contains some character in Java?

例如,我想檢查字符串“ABCD”是否在 Java 中包含“DC”字符串。 但這不是子字符串示例,因為每次我的字符串和檢查字符都會改變。 並且我將檢查字符存儲到數組中,因此子字符串失敗,只有在我有 CD 或 BC 時才有效。 並且我無法進行匹配,因為每次我從數組中調用檢查字符時。 所以我應該怎么做任何建議

我將此方法用於charbyte數組。 在獲得與sub匹配的src數組的索引后,您可以將其存儲在任何您想要的位置。 嘗試這個:

public static int indexOf(char[] src, char[] sub) {
    int limit = src.length - sub.length;
    int i, j;
    for(i = 0; i < limit +1; ++i) {
        for(j = 0; j < sub.length; ++j) {
           if (src[i+j] != sub[j]) {
               break;
           }
        }
        if (j == sub.length)
               return i;
     }
   return -1;  
} 

這是一些可以幫助您入門的偽代碼

我們將稱“ABCD”為源字符串,“DC”為目標字符串

change source string to list of chars

change target string to list of chars

for each char in target list of char

    if source list does not contain target char
        return false;

return true

獲取源字符串的所有排列,直到它包含所需的子字符串

基於的排列邏輯

public static void main(String[] args) {
    System.out.println(Test.checkIfContains("ABCD", "DC"));
}

public static Boolean checkIfContains(String main, String check) {
    return permutation("", main, check);
}

private static Boolean permutation(String prefix, String main, String check) {
    int n = main.length();
    if (n == 0) {
        if (checkFor(prefix, check)) {
            return true;
        }
    } else {
        for (int i = 0; i < n; i++) {
            if (permutation(prefix + main.charAt(i), main.substring(0, i) + main.substring(i + 1, n), check)) {
                return true;
            }
        }
    }
    return false;
}

private static boolean checkFor(String prefix, String check) {
    return prefix.contains(check);
}

據我了解,您想查看第二個字符串(我稱之為 checkString)的所有字符是否都包含在第一個字符串 (refString) 中。 我會繼續使用這樣的函數

private boolean checkString(String refString, String checkString) {   
    boolean a;
    for (int i; i < checkString.length(); i++) {
        for (int j; j < refString.length(); j++) {
            a |= checkString.charAt(i) == refString.charAt(j);
        }
        if (!a) return false;
    }
    return true;
}

僅當 checkString 中的所有字符都在引用字符串中時才返回 true。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM