请问一下这道题,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 getFirstNum(______________); //填空
} --------------------编程问答-------------------- c-'0'
s.substring(1) --------------------编程问答-------------------- 1. c;
2. s.substring(1);(使用递归获取其子串,去除已经判断的字符) --------------------编程问答-------------------- --------------------编程问答-------------------- import java.util.Scanner;
public class StringTest
{
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 c-'0';
return getFirstNum(s.substring(1));
}
public static void main(String [] args)
{
Scanner input = new Scanner(System.in);
String hex=input.nextLine();
System.out.println("The number is"+getFirstNum(hex));
}
} --------------------编程问答-------------------- 递归,思路明确自然不难 --------------------编程问答-------------------- 第一空: c-'0'或c
c-'0':返回的是用ASCII码计算出的整型;
c:返回字符型数字,会自动类型转换成int型。
第二空:s.substring(1)
已经判断了第一个字符,递归调用方法判断剩余字符串。 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 第一空:c
第二空:s.substring(1)//递归法判断
普科学生
补充:Java , Java SE