请完善程序(程序文件名:Java_2.java),并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。
题目要求:
对字符串进行缓存处理,程序运行的某次结果如下图所示。
源程序:
import javax.swing.*;
public class Java_2
public static void main( String args[] )
StringBuffer buf = new StringBuffer( "你好!祝你好运!");
String output = " buf = " + buf.toString( ) + " \nCharacter at 0:" + buf.charAt(0)+
" \nCharacter at 4: " + buf.charAt(4) ;
char charArray[]= (1) char[buf.length( )];
buf. (2) ( 0, buf.length(),charArray,0);
output + = " \n\n 在字符串缓存中的字符时: " ;
for(int i = 0; i< (3) ; ++i ) output += charArray[i];
buf.setCharAt( 0,’您’) ;
buf.setCharAt( 6,’材’);
output + = " \n\nbuf = " + buf.toString( ) ;
buf. (4) ;
output + = " \n\nbuf = " + buf.toString( ) ;
JOptionPane. showMessageDialog( null, output, "字符串缓存的字符相关方法示范",
JOptionPane.INFORMATION_MESSAGE);
System. exit(0) ;
参考答案:reverse()
解析: 由程序的输出结果可以看出,最后将StringBuffer对象buf进行了反序,此处应调用方法reverse()进行反序。
[程序解析] 本程序考查用StringBuffer表示可变字符串对象和用字符数组表示字符串,将结果用对话框输出。用String类表示的是固定长度的字符串。程序中用到了StringBuffer中的几个方法:
(1) setCharAt(int index,char ch)——将给定索引处的字符设置为ch。
(2) reverse()——将此字符序列用其反转形式取代。
(3) getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)——将字符从此序列复制到目标字符数组dst(与string中方法同)。
(4) toString()——返回此序列中数据的字符串表示形式。
(5) charAt(int index)——返回此序列中指定索引处的char值(与String中方法同)。
(6) length()——返回长度(字符数)(与String中方法同)。