[问答题] 下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有

10 查阅

[问答题] 下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。

注意:不改动程序的结构,不得增行或删行。

程序运行结果如下:

import java.awt.*;

import java.applet.*;

import java.lang.*;

public class ex29 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();

short cnt[]=new short[65536];

int i;

int n = 50;

for(i=0;i<65536;i++)

cnt[i]=0;

for(i=0;i<str.length();i++)

cnt [i] ++;

for (i=0;i<65536;i++)//对数级Cnt [] 进行初始化

if (cnt [i]

参考答案:

cnt[str.charAt(i)]++ cnt[i]>0 g.drawString((char)i+"出现"+cnt[i]+"次",50,n)

本题主要考查字符串操作和字符操作以及Applet图形用户界面设计。解题关键是会将输入的字符串分成每1个字符,并且会用计数器实现对字符进行统计,会使用Applet图形用户界面的基本方法完成结果的输出。本题中,第1处,要明白 cnt的下标是字符在所有的字符集合中的索引值,根据str对象的charAt()方法返回字符索引值,在对这个索引值进行统计;第2处,判断条件必须大于0否则会输出所有的字符;第3处,i变量是字符表中的索引值,对其进行直接类型转换为char则得到了由i索引的字符表中的字符的值。

计算机考试