12--String类相关习题总结

这篇博客总结了13道关于Java中String类的练习题,包括字符串反转、QQ号码格式验证、字符串查找与替换、回文字符串判断、随机数转字符串、筛选字符串等。同时探讨了StringBuilder与String的区别以及在大量拼接操作中的性能差异。每道题目都提供了代码实现和效果展示。
摘要由CSDN通过智能技术生成

第一题

  • 反转键盘录入的字符串。(其实在StringBuilder中有reverse方法可以实现字符串反转)

  • 代码实现,效果如图所示:
    在这里插入图片描述

  • 开发提示:

    使用字符数组保存原始字符,利用Random类生成随机索引。
    
  • 参考答案:

public class Test1 {
   
   public static void main(String[] args) {
   
       Scanner scanner = new Scanner(System.in);
       String next = scanner.next();
       System.out.println("录入的字符串:" + next);
       String s = reverseStr(next);
       System.out.println("反转的字符串:"+ s);
  }

   public static String reverseStr(String  str){
   
       String s = "";
       char[] chars = str.toCharArray();
       for (int i = chars.length - 1; i >= 0; i--) {
   
           s +=chars[i] ;
      }
       return s;
  }
}

第二题

  • 键盘录入QQ号码,验证格式的正确性。

     必须是5—12位数字。
     0不能开头。
    
  • 代码实现,效果如图所示:
    在这里插入图片描述

  • 参考答案:

public class Test2 {
   
   public static void main(String[] args) {
   
       //1.键盘输入一个qq号码字符串
       Scanner sc = new Scanner(System.in);
       String qq = sc.next();
       //2.调用checkQQ (String qq)方法内实现验证。
       boolean isOK = checkQQ(qq);
       //3.打印验证的结果
       System.out.println("这个QQ号码是否正确:" + isOK);
  }

   /*
    * 定义方法:checkQQ (String qq)方法内实现验证
    * 指定方法的名称:checkQQ
    * 指定方法的参数:String qq
    * 指定方法的返回值:boolean
    */
   public static boolean checkQQ(String qq){
   
       //1.验证字符串的长度5-12位之间;
       if (qq.length()<5 || qq.length()>12 ) {
   
           return false; //说明qq号码的长度不正确
      }
       //2.验证首位字符不能是字符0;只能是字符'1'--'9'
       if (qq.charAt(0) == '0') {
   
           return false;
      }
       //3.验证字符串中的每个字符都必须是数字字符‘0’-‘9’之间的字符
       for (int i = 0; i < qq.length(); i++) {
   
           char ch = qq.charAt(i);
           //判断字符是否在 数字字符‘0’-‘9’之间的字符
           if (ch<'0' || ch>'9') {
   
               return false;//说明qq号码中含有非数字字符
          }
      }
       //4.上述验证都通过了,说明qq号码是正确的
       return true;
  }
}

第三题

  • 字符串查找。

     键盘录入一个大字符串,再录入一个小字符串。
     统计小字符串在大字符串中出现的次数。
    
  • 代码实现,效果如图所示:
    在这里插入图片描述

  • 参考答案:

public class Test3 {
   
   /*
    * 分析以下需求,并用代码实现
       1.键盘录入一个大字符串,再录入一个小字符串
       2.统计小字符串在大字符串中出现的次数
       3.代码运行打印格式:
           请输入大字符串:woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma
           请输入小字符串:heima
           控制台输出:小字符串heima,在大字符串woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma中共出现3次
    */

   public static void main(String[] args) {
   
       Scanner sc = new Scanner(System.in);
       // 1.键盘录入一个大字符串,再录入一个小字符串
       System.out.print("请输入大字符串:");
       String big = sc.nextLine();
       System.out.print("请输入小字符串:");
       String small = sc.nextLine();
       // 2.统计小字符串在大字符串中出现的次数
       int count = getCount(big, small);
       // 3.代码运行打印格式:
       System.out.println("小字符串" + small + ",在大字符串中共出现" + count + "次");
  }

   /*
    * 方法功能:统计小字符串在大字符串中出现的次数
    * 参数:big 代表大字符串
    * 参数:small 代表小字符串
    * 返回值:小字符串在大字符串中出现的次数
    */
   public static int getCount(String big, String small) {
   
       int index = 0;
       int count = 0;
       /*
        * indexOf(String str, int fromIndex)
        * 该方法作用:从from
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,下面是一些异常练习题以及实验总结: 1. 编写一个程序,要求实现两个整数相除的功能,如果分母为0,抛出一个自定义的异常。 ```java class MyException extends Exception { public MyException(String message) { super(message); } } public class Divide { public static void divide(int a, int b) throws MyException { if (b == 0) { throw new MyException("除数不能为0!"); } else { System.out.println(a / b); } } public static void main(String[] args) { try { divide(8, 2); divide(8, 0); } catch (MyException e) { System.out.println(e.getMessage()); } } } ``` 2. 编写一个程序,要求实现对一个数组的操作,如果数组下标越界,抛出一个自定义的异常。 ```java class MyException extends Exception { public MyException(String message) { super(message); } } public class ArrayTest { public static void arrayTest(int[] arr, int index) throws MyException { if (index < 0 || index >= arr.length) { throw new MyException("数组下标越界!"); } else { System.out.println(arr[index]); } } public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; try { arrayTest(arr, 2); arrayTest(arr, 5); } catch (MyException e) { System.out.println(e.getMessage()); } } } ``` 实验总结: 在 Java 中,异常是一种处理错误的机制。当程序出现错误时,异常会被抛出,如果没有被处理,程序就会崩溃。因此,我们需要在程序中使用 try-catch 块来捕获异常并进行处理。同时,Java 也提供了一些标准的异常,比如 NullPointerException、IndexOutOfBoundsException 等等,我们可以使用这些来处理常见的异常情况。如果需要自定义异常,可以继承 Exception 或其子,并重写构造方法。在处理异常时,我们可以使用 getMessage() 方法来获取异常信息,也可以使用 printStackTrace() 方法来输出异常信息。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值