Topic: 请帮我解释下(关于StringBuffer.append(String str))

  Print this page

1.请帮我解释下(关于StringBuffer.append(String str)) Copy to clipboard
Posted by: nationalist
Posted on: 2006-08-01 20:51


import javax.swing.*;
public class HtmlSpecialChars {

/**
* @param args
*/
public static void main(String[] args)
{
String str=JOptionPane.showInputDialog("Please Enter String!");
String ok= HtmlSpecialChar(str);
System.out.println(ok);
System.exit(0);

}
public static String HtmlSpecialChar(String str)
{
if(str == null||str.equals(""))
{
return str;
}

StringBuffer temp = new StringBuffer();

int i = 0;

while(i < str.length())
{

//将<转换成<
if(str.charAt(i) == '<')
{

temp = temp.append("#");

System.out.println(temp);//当我输入"a<"的时候我搞不懂,这里为什么会输出"a#"我认为应该是输出"#"的,temp是为空啊!!!
}
else
{
temp = temp.append(str.substring(i,i+1));
}

i++;
}


String okstring = temp.toString();
return okstring;
}

}

2.Re:请帮我解释下(关于StringBuffer.append(String str)) [Re: nationalist] Copy to clipboard
Posted by: cainiao025
Posted on: 2006-08-01 21:24

你的程序得不到预期的效果,不是append()这个方法错了,而是程序当中的while 循环的if....else子句出错了。你把else 子句注释掉,只保留if子句,就可以得到正确结果了。

自己好好看看程序。

3.Re:请帮我解释下(关于StringBuffer.append(String str)) [Re: nationalist] Copy to clipboard
Posted by: zcjl
Posted on: 2006-08-01 21:25

因为里面有这段代码,就是这个把"a" append到StringBuffer中的:
else
        {
         temp = temp.append(str.substring(i,i+1));
        }


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923