问题 问答题

下面是一个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] >=0) { g.drawStrinq(i+"出现"+cnt[i]+"次",50,n); n+=20;} } public boolean action(Event e, Object o){ if (o == "统计"){ repaint(); return true; } elsereturn false; } }ex29_3.html <HTML> <HEAD> <TITLE>ex29_3</TITLE> </HEAD> <BODY> <applet code="ex29_3.class" width=800 height=400 > </applet> </BODY> </HTML>

答案

参考答案:

解析: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索引的字符表中的字符的值。

选择题
单项选择题