我有一个类,它在jframe中实现了comparator方法,由于某种原因,当您将相同的名称放入程序falls的两倍并打印-->stringindexoutofboundsexception时
方法代码:
public class OrdenarCrecienteTecnico implements Comparator<Tecnico> {
@Override
public int compare(Tecnico a, Tecnico b) {
String PalabraA = a.getNombre().toUpperCase();
String PalabraB = b.getNombre().toUpperCase();
int i = 0;
while(i<PalabraA.length() && i<PalabraB.length() && PalabraA.charAt(i) == PalabraB.charAt(i)){
i++;
}
return PalabraA.charAt(i) - PalabraB.charAt(i);
}
}
2条答案
按热度按时间xbp102n01#
这个代码,当面对相同的字符串时,
会从循环中消失
i
等于字符串的长度。然后执行以下操作:这保证会抛出一个越界异常,因为有效索引的长度从0到1。
acruukt92#
另一个答案描述了您的具体问题和解决方案。
你好像工作太辛苦了。简单地让两个字符串进行比较。