下面是一个Applet程序,其功能是对输入的字符串进行抽取。要求给出抽取的子串在母串中的起始和终止位置,输出抽取出来的子串。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如

admin2009-01-15  41

问题 下面是一个Applet程序,其功能是对输入的字符串进行抽取。要求给出抽取的子串在母串中的起始和终止位置,输出抽取出来的子串。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
   注意:不改动程序的结构,不得增行或删行。
   程序运行结果如下:
       
   import java.awt.*;
   import java.applet.*;
   public class ex26_3 extends Applet{
      TextField tf1;
      TextField tf2;
      TextField tf3;
      Button btn;
      String strResult;
      public void init(){
         Label 1 = new Label("字符串: ");
         add(l);
         tf1 = new TextField(20);
         add(tf1);
         l = new Label ("开始位置: ");
         add(l);
         tf2 = new TextField(5);
         add(tf2);
         l = new Label ("结束位置:");
         add(l);
         tf3 = new TextField(5);
         add(tf3);
         btn = new Button("抽取");
         add(btn);
         strResult =  " ".
         resize(250, 200);
      }
      public void paint(Graphics g){
         g.drawString("选中的子串为:", 80, 140);
         g.drawString(strResult, 80, 140);
      }
      public boolean action(Event e, Object o){
         if (o == "抽取") {
            try{
                String str1 = tf1.getText();
                String str2 = tf2.getText();
                String str3 = tf3.getText();
                int from = Integer.parseInt(str2);
                int to = Integer.parseInt(str1);
                strResult = str1.substring(from, to-1);
            }
            catch( StringIndexOutOfBoundsException se){
                strResult="字符索引越界!";
            }
         repaint ( );
         return true;
       }
       else
         return false;
      }
   }
   ex263, htm1
   <HTML>
   <HEAD>
     <TITLE>ex26_3</TITLE>
   </HEAD>
   <BODY>
   <applet code="ex26_3.class" width=800 height=400 >
   </applet>
   </BODY>
   </HTML>

选项

答案g.drawString(strResult, 80, 160) to=Integer.parseInt(str3) strResult=str1.substring(from, to)

解析 本题主要考查字符串的取子串操作和Applet图形绘制以及Applet窗口的设计等。解题关键是熟悉字符串的操作,会使用awt基本构件TextField和Button等以及事件处理机制。本题中第1处,第3个参数不应该和上一条语句相同,否则输出的字符串和上面语句输出的字符串重叠;第2处,应该是将str3所接受的输入作为子串的下界,而不是str1;第3处,调用 substring()方法要注意参数的含义,第1个是子串开始的位置,第2个是子串结束的位置。
转载请注明原文地址:https://kaotiyun.com/show/Nhnp777K
0

最新回复(0)