• 简单推导


    已完成:


      • 猜年龄
      • 猜年龄02
      • 猜生日
      • 圆的面积
      • 第一个数字:
      • 题目

        以下的静态方法实现了:把串s中第一个出现的数字的值返回。

        如果找不到数字,返回-1

        例如:

        s = "abc24us43" 则返回2

        s = "82445adb5" 则返回8

        s = "ab" 则返回-1

        以下的静态方法实现了:把串s中第一个出现的数字的值返回。

        请分析代码逻辑,并推测划线处的代码。

        答案写在“解答.txt”文件中

        注意:只写划线处应该填的内容,划线前后的内容不要抄写。

        分析

        题目使用了递归思想,递归出口是:字符串s为null或者长度为0;如果遇到数字就立即返回,如果遇到非数字字符,则求其子字符串的第一数字。

         1 import java.util.*;
         2 public class Lanq {
         3     public static int getFirstNum(String s) {
         4         //递归出口
         5         if (s == null || s.length() == 0)
         6             return -1;
         7         //取第一字符
         8         char c = s.charAt(0);
         9         //如果是数字,返回该数字
        10         if (c >= '0' && c <= '9')
        11             return s.charAt(0)-'0';
        12 
        13         return getFirstNum(s.substring(1));
        14     }
        15 
        16     public static void main(String[] args) {
        17         String s1 = "abc24us43";  //则返回2
        18         String s2 = "82445adb5";  //则返回8
        19         String s3 = "ab";   //则返回-1
        20         System.out.println(getFirstNum(s1));
        21         System.out.println(getFirstNum(s2));
        22         System.out.println(getFirstNum(s3));
        23     }
        24 }
         
        结果

        2

        8

        -1

  • 相关阅读:
    遍历指定目录及其子目录下所有文件
    vim 配置
    解决 Mendeley Linux 中文输入问题
    全角半角字符对照表
    chrome 替换多线程下载管理器
    查看系统日志
    中大东校区iNode For linux 配置笔记
    anaconda 虚拟环境笔记
    linux 网络操作
    deepin 装机
  • 原文地址:https://www.cnblogs.com/passion-sky/p/8535481.html
Copyright © 2020-2023  润新知