/*
以下的静态方法实现了:把串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 _____(1)________; //填空
return _______(2)____________; //填空
}
答案:(1)s.charAt(0)-'0'
(2)getFirstNum(s.substring(1))
请分析代码逻辑,并推测划线处的代码。
*/
public class Main {
//递归函数
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 s.charAt(0)-'0'; //填空
//如果不是数字,则求子字符串的第一个数字
//substring(1)表示获取了从原字符串下标为1的元素,形成新的子字符串。
return getFirstNum(s.substring(1)); //填空
}
//以下题中未给出,是需要自己写的。
public static void main(String[] args) {
String s1="abc24us43";
String s2="82445adb5";
String s3="ab";
System.out.println(getFirstNum(s1));
System.out.println(getFirstNum(s2));
System.out.println(getFirstNum(s3));
}
}