我正在编写一个方法,该方法将输入字符串数组和整数n作为输入。该方法将检查直到长度n的字符串是否按字典顺序排列。
我的代码对每个输入都返回false,我不知道为什么!

public static boolean isStringArraySorted(String[] strs, int n) {
    boolean answer=true;

    for (String word : strs) {
        for(int i=1; i<strs.length; i++) {
            String check1 =word.substring(0,n);
            String check2= strs[i].substring(0,n);
            if ( check1.compareToIgnoreCase(check2) > 0 )
                return false;
        }
    }

    return answer;
}

最佳答案

因为您要在整个数组的内部for循环中进行迭代,而您仅应从单词开始进行迭代。

for (int j=1; j<strs.length; j++){
    for(int i=j+1; i<strs.length; i++){
        String word = strs[j];
        String check1 =word.substring(0,n);
        String check2= strs[i].substring(0,n);
        if (check1.compareToIgnoreCase(check2)>0)
            return false;

    }
}

关于java - 检查字符串数组是否按字典顺序排序,不区分大小写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27022440/

10-10 15:58