Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写一个递归函数,将字符串转换为它所表示的数字。e、 g.对于输入“;1231&x201D;您应该返回整数1231 import java.util.Scanner; 公共类ReturnNumberGivenInAString{ 公共静态整数(字符串s1,整数p) { 如果(s1.length()==0) { 返回0; } 对于(int i=0;i_Java - Fatal编程技术网

编写一个递归函数,将字符串转换为它所表示的数字。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)