【发布时间】:2014-02-27 16:04:11
【问题描述】:
我正在尝试创建一个 Java 程序,它可以递归地将字符串转换为整数。这是我目前所拥有的,但它给了我一个错误,“线程“main”java.lang.NumberFormatException中的异常”。该方法应该以字符串的形式接收一个数字,然后遍历每个位置。通过每次迭代,它将单个数字转换为整数并将其添加到 x。最后,假设 x 具有整数形式的字符串数。
导入 java.util.Scanner;public class Problem{
public static int x=0;
public static int integer;
public static int intconvert(String numb,int index,int times){
if(index==numb.length()){
return x;
}
else{
integer=Integer.parseInt("numb.charAt(index)"); //
x+=integer*times; //add int and multiply it
return intconvert(numb, index++, times*10); //
}
}
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.print("Enter the String digit: ");
String number=scan.nextLine();
intconvert(number, 0, 1);
/* System.out.println(number.charAt(0));
System.out.println(number.charAt(1));
System.out.println(number.charAt(2));*/
}
}
【问题讨论】:
-
您正在传递一个不可解析的字符串。删除
numb.charAt(index)周围的引号。 -
为什么每个人都突然实现所有东西的递归版本,这些东西可以通过简单的迭代更好地实现? (我知道,现在还处于这个学期的早期,他们刚刚了解了递归,并认为它很酷,但不明白什么时候合适,什么时候不合适。不过:grrrrrrr。结束咆哮。)
-
我被曝光了。这只是一个帮助我理解递归的练习。这段代码确实没有实际用途,我相信简单的迭代可以轻松解决这个问题。