如果取消注释2注释字符串,此循环中断,无法弄清楚为什么会发生这种情况,请帮助PLZ:
private static String findAll(String cell, ArrayList<String> hrange, ArrayList<String> vrange, List<String> cellrange, Integer cycle){
cellrange.add(cell);
String color = XldocReader.xlCells.get(cell);
String[] chkeys = cell.split("\\$");
String chLetter = chkeys[1];
Integer chNumber = Integer.parseInt(chkeys[2]);
boolean rcnext = false;
boolean rcprev = false;
Iterator<String> ite = hrange.iterator();
while ( ite.hasNext() ) {
String candidate = ite.next();
String value = XldocReader.xlCells.get(candidate);
String[] ckeys = candidate.split("\\$");
String cLetter = ckeys[1];
int n = getKeyByValue(chLetter);
String next = cell.replaceAll(chLetter+"", columns.get(n+1) +"");
String cnext = XldocReader.xlCells.get(next);
String prev = cell.replaceAll(chLetter+"", columns.get(n-1) +"");
String cprev = XldocReader.xlCells.get(prev);
//rcnext = cnext.equals(color);
//rcprev = cprev.equals(color);
...
}
return cellrange.toString();
}
它应该找到等于字符串并再次以递归方式运行检查,但首先检查它的中断并且没有检查更多......
答案 0 :(得分:0)
我会制作循环
for(String candidate : hrange) {
}
我会通过调试器中的代码逐步查看它正在做什么,因为我怀疑你的程序没有按照你的想法进行。
休息是什么意思?什么是异常以及它出现在哪一行?它与您在调试器中看到的匹配吗?
我怀疑问题出在您标记为...
答案 1 :(得分:0)
你能给我们更多信息吗?错误是什么?怎么打破?此外,在它破裂之前打印出颜色和cnext,cprev的结果。
我的猜测是那些不合法的字符串。而且你正在尝试对不是合法字符串的东西运行equals方法。