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

时间:2015-06-16 16:33:32

标签: java

我想检查一下例如string" ABCD"包含" DC" Java中的字符串。但这不是子字符串示例,因为每次我的字符串和检查字符都会改变。我将检查字符存储到数组中,因此子字符串失败,只有在我有CD或BC时它才有效。因为我每次调用从数组中检查字符时都无法匹配。那我该怎么办呢

4 个答案:

答案 0 :(得分:0)

我将此方法用于create or replace function dbst_load_a_file2( p_file_name in varchar2 ) return clob is l_clob clob; l_bfile bfile; dst_offset number := 1 ; src_offset number := 1 ; lang_ctx number := DBMS_LOB.DEFAULT_LANG_CTX; warning number; begin l_bfile := bfilename( 'SCHEMES_OF_PS', p_file_name ); dbms_lob.fileopen( l_bfile ); dbms_lob.loadclobfromfile( DEST_LOB => l_clob , SRC_BFILE => l_bfile , AMOUNT => dbms_lob.getlength( l_bfile ) , DEST_OFFSET => dst_offset , SRC_OFFSET => src_offset , BFILE_CSID => DBMS_LOB.DEFAULT_CSID , LANG_CONTEXT => lang_ctx , WARNING => warning); dbms_lob.fileclose( l_bfile ); return l_clob; end; insert into SCHEME_SOURCE (SOURCE, ID, CODE) values (dbst_load_a_file2('Konotop.svg' ), 15, 'Konotop'); char数组。获得与byte匹配的src数组的索引后,您可以将其存储在任何您想要的位置。 试试这个:

sub

答案 1 :(得分:0)

这里有一些伪代码可以让你开始

我们将“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

答案 2 :(得分:0)

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

Permutation Logic based on

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);
}

答案 3 :(得分:0)

据我了解,你想看看第二个字符串(我称之为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。