日期:2014-05-18  浏览次数:20741 次

关于stringBuffer调换字符顺序
一道java面试题

现有 StringBuffer str = new StringBuffer("This is an apple"); 
要将str转换成“apple an is This”
节省内存开支限定用一下变量完成
int p1;int p2;char temp;

如果不限定使用变量可以搞定,但是限定了变量 求高手赐教
------解决方案--------------------

StringBuffer str = new StringBuffer("This is an apple"); 
int p1,p2;
char temp=' ';

p1 = p2 = str.length();
while (p1>0) {
if(temp==str.charAt(--p1)){
str.append(str.subSequence(p1+1,p2)).append(temp);
p2 = p1;
}
}
str.append(str.subSequence(p1,p2));
str.delete(0, str.length()>>1);
System.out.println(str);