【发布时间】:2015-03-18 12:14:18
【问题描述】:
我有一个加粗某些字符的功能。一切正常,除了我在方法开始时拥有的字符串在某处被剪切并返回一半,而不是作为开始时得到的整个字符串。这是代码,我不知道我的错误在哪里。
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;
}
【问题讨论】:
-
for(i=0;i<line.length();i++){...if(line.charAt(i-1)!=' ' && line.charAt(i+1)!=' ')...}-- 可能超出范围(line.charAt(0)和line.chrAt(line.length())) -
越界将是一个问题,但会产生异常。您应该使用 StringBuilder,但这并不能解决问题。
标签: java android string char bufferedreader