BufferReader 不会遍历整个文本

BufferReader doesnt go through whole text

我有一个函数可以将某些字符加粗。一切正常,除了我在方法开始时的字符串在某处被剪切并返回一半,而不是在开始时得到的整个字符串。这是代码,我不知道我哪里错了。

public String boldovanjeAkorada(String text)
{
    String konacan = "<pre>";
    int i = 0;
    try {
        BufferedReader buff = new BufferedReader(new StringReader(text));
        for (String line = buff.readLine(); line != null; line = buff.readLine()) {

            for(i=0;i<line.length();i++)
            {
                char slovo = line.charAt(i);
                if(slovo == ' ' )
                {
                   if(line.charAt(i-1)!=' ' && line.charAt(i+1)!=' ')
                   {
                       konacan = konacan + slovo;
                   }
                    else{
                       konacan = konacan + "&nbsp";
                   }
                }
                else if(slovo == '(') {
                    konacan = konacan + "<b>"+slovo;
                }
                else if(slovo == ')') {

                konacan = konacan + slovo + "</b>";
                }
                else {
                        konacan = konacan + slovo;
                    }
                }

            konacan = konacan + "<br />";

            }
            buff.close();

        }catch (Exception e)
    {
        System.out.println(e.toString());
    }
    return konacan;
}

改变

if(line.charAt(i-1)!=' ' && line.charAt(i+1)!=' ')

进入

if( i>0 && line.charAt(i-1)!=' ' &&
    (i+1)<line.length() && line.charAt(i+1)!=' ')

同时添加

return koncan + "</pre>"

您还可以像这样使用 StringBuilder 来加快速度:

StringBuilder konacan = new StringBuilder("<pre>");
konacan.append("<b>"+slovo);
return konacan.append("</pre>").toString();