下面是一个Applet程序,其功能是分析任意输入的字符串,将字符串中由空格隔开的字串提取并显示出来。要求,窗口中有一个输入文本框,用于接受输入的字符串,一个按钮,点击则开始分析,分析结果用图形方式打印在窗口下面的区域中。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
程序运行结果如下:
import java.awt.*;
import java.applet.*;
import java.util.StringTokenizer;
public class ex27_3 extends Applet
private TextField tf;
private Button btn;
public void init()
tf = new TextField(25);
add(tf);
btn= new Button("分析");
add(btn);
resize(250, 200);
public void paint(Graphics g)
String str = tf.getText();
StringTokenizer st = new StringTokenizer(tf);
int n = 80;
while (!st.hasMoreTokens())
String tem = st.nextToken();
g.drawString(tem, n, 80);
n += 20;
public boolean action(Event e, Object o)
if (o == "分析")
repaint();
return true;
else
return false;
ex27_3.html
<HTML>
<HEAD>
<TITLE>ex27_3</TITLE>
</HEAD>
<BODY>
<applet code="ex27_3.class" width=800 height=400
</applet>
</BODY>
</HTML>
参考答案:
new StringTokenizer(str)
St.hasMoreTokens()
g.drawString(tem, 80,n)
解析:
本题主要考查字符串的分割和Applet图形界面相结合的综合应用。解题关键是熟悉字符串的分割方法,使用 StringTokenizer的对象来对String类的对象进行分割。本题中,第1处,StringTokenizer类的构造方法应该以String类的对象作为入口参数;第2处,判断语句应该是当对象st中还有分割串的时候则继续进行;第3处,drawString()方法的参数第2个表示输出字符串起始位置的横坐标,第3个是纵坐标,如果n作为横坐标,则输出的字符串会发生重叠。