zoukankan      html  css  js  c++  java
  • 第一个数字

    /*
    标题:第一个数字
    内容:

    以下的静态方法实现了:把串s中第一个出现的数字的值返回。
    如果找不到数字,返回-1

    例如:
    s = "abc24us43" 则返回2
    s = "82445adb5" 则返回8
    s = "ab" 则返回-1

    public static int getFirstNum(String s)
    {
    if(s==null || s.length()==0) return -1;

    char c = s.charAt(0);
    if(c>='0' && c<='9') return _____________; //填空

    return ___________________; //填空
    }

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

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

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

    */

     1 class pro05 {
     2     public static void main (String[] args){
     3         System.out.println(fff.getFirstNum("abc24us43"));
     4         System.out.println(fff.getFirstNum("82445adb5"));
     5         System.out.println(fff.getFirstNum("ab"));
     6 
     7     }
     8     
     9     public static int getFirstNum(String s)
    10     {
    11         if(s==null || s.length()==0) return -1;
    12         
    13         char c = s.charAt(0);
    14         if(c>='0' && c<='9') return c-'0';  //填空
    15         
    16         return getFirstNum(s.substring(1));  //填空
    17     }
    18 }

    /*

    又是一道递归题,不过这个题目个人感觉比上一道题目简单一点点,
    其中要注意的是“c-'0'”这一句,"c"是一个char类型,而返回值为int,
    java中,char和int在一定范围类是可以互相转化的,
    这里“c-'0'”,“c-48”,应该都可以,48是‘0’的asc码值,
    */

    /*
    刚才再看这道题,递归方法可以调用很多层,但是只有一层有返回值,它返回的值会返回给最上层的方法,没想通为什么会这样,但这道题里面,“abc24us43”前三次都是没有返回值的,到了第四层的时候才返回“2”,但是这个“2”最后会被打印出来,它不是在自己的方法中打印出来的,而是在main方法中被打印的,说明这个“2”被最上层的getFirstNum(s.substring(1))方法得到了,

    */

  • 相关阅读:
    优化C/C++代码的小技巧
    闭包,看这一篇就够了——带你看透闭包的本质,百发百中
    7215:简单的整数划分问题
    常见问题最佳实践三:服务启动顺序
    JAVA 用分苹果来理解本题
    arcgis访问格式
    墨卡托投影
    C# 从DataTable中取值
    Base64编码的字符串与图片的转换 C#
    墨卡托投影实现
  • 原文地址:https://www.cnblogs.com/wsxjbky/p/3056082.html
Copyright © 2011-2022 走看看