java:while循环中断

时间:2012-01-13 16:30:50

标签: java while-loop

如果取消注释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();
  }

它应该找到等于字符串并再次以递归方式运行检查,但首先检查它的中断并且没有检查更多......

2 个答案:

答案 0 :(得分:0)

我会制作循环

for(String candidate : hrange) {

}

我会通过调试器中的代码逐步查看它正在做什么,因为我怀疑你的程序没有按照你的想法进行。

休息是什么意思?什么是异常以及它出现在哪一行?它与您在调试器中看到的匹配吗?

我怀疑问题出在您标记为...

的代码中

答案 1 :(得分:0)

你能给我们更多信息吗?错误是什么?怎么打破?此外,在它破裂之前打印出颜色和cnext,cprev的结果。

我的猜测是那些不合法的字符串。而且你正在尝试对不是合法字符串的东西运行equals方法。