java – ‘占位符’字符以避免积极比较?

前端之家收集整理的这篇文章主要介绍了java – ‘占位符’字符以避免积极比较?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究 CodingBat exercises for Java.我遇到了以下问题:

Given 2 arrays that are the same length containing strings,compare the 1st string in one array to the 1st string in the other array,the 2nd to the 2nd and so on. Count the number of times that the 2 strings are non-empty and start with the same char. The strings may be any length,including 0.

我的代码是这样的:

public int matchUp(String[] a,String[] b){

    int count = 0;

    for (int i = 0; i < a.length; i++) {
        String firstLetterA = a[i].length() == 0
                            ? "ê"
                            : a[i].substring(0,1);
        String firstLetterB = b[i].length() == 0
                            ? "é"
                            : b[i].substring(0,1);

        if (firstLetterA.equals(firstLetterB)) {
            count++;
        }
    }
    return count;
}

我的问题是:哪个“占位符”字符被认为是一种良好的做法,可以避免在firstLetterA和firstLetterB之间进行不必要的比较?

在这种情况下,我只分配了两个很少使用的不同字母(至少用英文).我尝试使用”(一个空字符,而不是空格)但当然,它们相互匹配.我也尝试过使用null,因为我认为它无法进行正面比较,但这也会导致问题.

解决方法

一个好的做法 – IMO – 是条件扩展而不是使用任何虚拟字符:
for (int i = 0; i < a.length; i++) {
    if (!a[i].isEmpty() && !b[i].isEmpty() && a[i].charAt(0) == b[i].charAt(0)) {
        count++;
    }
}

猜你在找的Java相关文章