ala*_*nan 6 java arrays string compare
我正在通过Java的CodingBat练习.我遇到了以下问题:
给定2个包含字符串长度的数组,将一个数组中的第一个字符串与另一个数组中的第一个字符串进行比较,将第二个字符串与第二个字符串进行比较,依此类推.计算2个字符串非空的次数,并以相同的char开头.字符串可以是任何长度,包括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;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:哪个'占位符'字符被认为是良好的做法,以避免不必要的比较firstLetterA和firstLetterB?
在这种情况下,我只分配了两个很少使用的不同字母(至少用英文).我尝试使用''(一个空字符,而不是一个空格)但当然,它们相互匹配.我也尝试过使用null它们,因为我认为它无法进行积极的比较,但这也会导致问题.
一个好的做法 - IMO - 是扩展if条件而不是使用任何虚拟角色:
for (int i = 0; i < a.length; i++) {
if (!a[i].isEmpty() && !b[i].isEmpty() && a[i].charAt(0) == b[i].charAt(0)) {
count++;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |