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));
}
}
它显示0作为输出 调试时我注意到s1.charAt(0)没有与i相比 请告诉我代码中的错误
答案 0 :(得分:1)
问题在于:
Process.GetCurrentProcess()
当您进行整数比较时, if(s1.charAt(0)==i)
返回的值将转换为其ascii等效值。
要解决此问题,您可以执行以下操作:
s1.charAt(0)
答案 1 :(得分:0)
s1.chatAt(0)将返回一个与int进行比较的字符。在比较之前,您需要先将该字符转换为int。
使用Character.getNumericValue(s1.charAt(0))