一个java程序题
class B { public static String changStr(StringBuffer str) { for(int i=0;i<str。
length();i++) { char a= arAt(i); if(a=='\n') tCharAt(i,'n') ; else if(a=='\b') tCharAt(i,'b') ; else if(a=='\r') tCharAt(i,'r') ; else if(a=='\f') tCharAt(i,'f') ; else ; } String str1=new String(str); return str1; } public static void main(String[] args) { StringBuffer name=new StringBuffer("n\bni hao hao meimei"); String newname=changStr(name); intln("newnam is "+newname); } }。
Could you replace your codes like: if(B=='\n') tCharAt(i,'n') with the codes like:if(new Character(B).equals(new Character('\n'))) tCharAt(i,'n') and have a try again with test data "hello world \r\f\b\n hello world"?
原题是什么?看不懂这个程序到底要达到什么有用目的,因为好像你想改变的值不会在那name里出现(比如"\r")。几个表皮错误:(1) changStr()需要return 一个 StringBuffer 值,但你没有。(2) 你没有说明 i 是什么。加个 int 在第一个 i 前面。(3) main() 无法直接运用B里的值,必须要以下方法: angStr(new StringBuffer("ni ni hao hao"));(4) 最好把String newname这行放在main()里。(对不起,在下不懂中文程序业的专业词语。)