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 + " ";
}
}
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();
我有一个函数可以将某些字符加粗。一切正常,除了我在方法开始时的字符串在某处被剪切并返回一半,而不是在开始时得到的整个字符串。这是代码,我不知道我哪里错了。
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;
}
改变
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();