昨天改了点代码,后来简单测试时发现出错了。于是定位到代码。
原来代码:
while (pos > areaStart && ch != '\n' && ch != '\t')
{
pos--;
}
因为后面的字符判断太多,所以改成了新代码:
while (pos > areaStart)
{
for (char item : SUPPER_FRACTION_CHARS)
{
if (ch == item)
{
break;
}
}
pos--;
}
反复检查也没发现问题。DEBUG了一下才发现问题出在中断循环上。吾只管中断出for,没有想到外层还有一个while。于是改成:
boolean breakFlag = false;
while (pos > areaStart)
{
ch = doc.getChar(pos);
for (char item : SUPPER_FRACTION_CHARS)
{
if (ch == item)
{
breakFlag = true;
break;
}
}
if (breakFlag)
{
break;
}
pos--;
}