编写一个递归函数,将字符串转换为它所表示的数字。e、 g.对于输入“;1231&x201D;您应该返回整数1231 import java.util.Scanner; 公共类ReturnNumberGivenInAString{ 公共静态整数(字符串s1,整数p) { 如果(s1.length()==0) { 返回0; } 对于(int i=0;i
,问题是:编写一个递归函数,将字符串转换为它所表示的数字。e、 g.对于输入“;1231&x201D;您应该返回整数1231 import java.util.Scanner; 公共类ReturnNumberGivenInAString{ 公共静态整数(字符串s1,整数p) { 如果(s1.length()==0) { 返回0; } 对于(int i=0;i,java,Java,,问题是: import java.util.Scanner; public class ReturnNumberGivenInAString { public static int number(String s1,int p) { if(s1.length()==0) { return 0; } for(int i = 0; i<=9;i++) {
import java.util.Scanner;
public class ReturnNumberGivenInAString {
public static int number(String s1,int p)
{
if(s1.length()==0)
{
return 0;
}
for(int i = 0; i<=9;i++)
{
if(s1.charAt(0)==i)
{
p = p + i*10;
}
}
int s = number(s1.substring(1), p);
return s;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
String s1 = s.next();
int p = 0;
System.out.println(number(s1,p));
}
}
在进行整数比较时,因此s1.charAt(0)
返回值将转换为其ascii等效值
要解决此问题,您可以执行以下操作:
if(s1.charAt(0)==i)
s1.chatAt(0)将返回一个字符,您正在将该字符与int进行比较。在比较之前,需要先将该字符转换为int
使用Character.getNumericValue(s1.charAt(0))
if(Character.getNumericValue(s1.charAt(0))==i)