Reputation: 1748
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 + " ";
}
}
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
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