Vulovic Vukasin
Vulovic Vukasin

Reputation: 1748

BufferReader doesnt go through whole text

I have a function that bolds certain characters. Everything works fine except that the string that I have at the beggining of the method is cut somewhere and returned in half,not as the whole string that is got in the beggining. Here is the code,I dont know where is my mistake.

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;
}

Upvotes: 0

Views: 42

Answers (1)

Vit Bernatik
Vit Bernatik

Reputation: 3802

change

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

into

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

Also add

return koncan + "</pre>"

Also you speed it up by using StringBuilder like this:

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

Upvotes: 1

Related Questions