Java Integer.parseInt未将字符串解析为整数

Java Integer.parseInt未将字符串解析为整数,java,string,parsing,integer,Java,String,Parsing,Integer,我曾尝试使用length.trim()和length.replaceAll()来丢弃空白,但没有成功。 线程“main”java.lang.NumberFormatException中出现异常 Scanner sc = new Scanner(System.in); length = sc.nextLine(); length_to_play = Integer.parseInt(length); 我想你误解了 Exception in thread "main" java.lang.Numb

我曾尝试使用length.trim()和length.replaceAll()来丢弃空白,但没有成功。 线程“main”java.lang.NumberFormatException中出现异常

Scanner sc = new Scanner(System.in);
length = sc.nextLine();
length_to_play = Integer.parseInt(length);

我想你误解了

Exception in thread "main" java.lang.NumberFormatException: For input string: "y"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:492)
    at java.lang.Integer.parseInt(Integer.java:527)
    at speedwords.first_activity(speedwords.java:27)
    at speedwords.main(speedwords.java:338)
来自Java文档


我想你误解了

Exception in thread "main" java.lang.NumberFormatException: For input string: "y"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:492)
    at java.lang.Integer.parseInt(Integer.java:527)
    at speedwords.first_activity(speedwords.java:27)
    at speedwords.main(speedwords.java:338)
来自Java文档


当用户输入数字时,您应该使用。这样,您就不需要自己编写解析


如果需要字符串并希望将其转换为
int
s,则可以分别对输入字符串的每个字符使用。

当用户输入数字时,应使用。这样,您就不需要自己编写解析


如果您需要字符串并希望将其转换为
int
s,则可以分别在输入字符串的每个字符上使用。

您应该查看

如您所见,解析后的字符串被转换为整数值,如果该值不是整数,则抛出

为什么希望它返回ASCII整数值

回答:对于您的种类信息,我们传递的是字符串,而不是具有独立ASCII值的
字符。如果您想要字符串中每个字符的ASCII码,那么您可以看看这个


您应该查看有关的文档

如您所见,解析后的字符串被转换为整数值,如果该值不是整数,则抛出

为什么希望它返回ASCII整数值

回答:对于您的种类信息,我们传递的是字符串,而不是具有独立ASCII值的
字符。如果您想要字符串中每个字符的ASCII码,那么您可以看看这个


好的,我正在发布我发现最适合我想要的案例的答案。但是谢谢大家的帮助

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);
    }

好的,我正在发布我发现最适合我想要的案例的答案。但是谢谢大家的帮助

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);
    }


你有什么错误吗?@ArhatBaid发布完整的stacktrace,它也会显示字符串。有。。每当我输入一个字符时,我都会得到一个“main”java.lang.NumberFormatException。@您输入的ArhatBaid字符或数字我试图输入一个整数,但每当输入一个字符时,都会向用户显示一条打印消息(我使用的是if else)。但是在输入一个字符时,这个错误就来了。你有什么错误吗?@ArhatBaid post complete stacktrace,它也会显示字符串。是的。。每当我输入一个字符时,我都会得到一个“main”java.lang.NumberFormatException。@您输入的ArhatBaid字符或数字我试图输入一个整数,但每当输入一个字符时,都会向用户显示一条打印消息(我使用的是if else)。但是在输入字符时会出现此错误。如果我使用sc.nextInt(),那么如何使用if-ELSE块向用户打印消息?我希望在输入一个字符时,我可以将其转换为ASCII整数值,并检入IF块。好的,您可能需要编辑问题,以说明您想要专门转换字符。但字符不也是一个可能的字符串吗?即使我输入,例如“tyf”the parseInt()的字符串也不会返回ASCII整数值。不,它不是这样工作的。“tyf”的int结果是什么?其字符的ASCII值之和,还是将这些值串联为字符串?我已经编辑了我的答案。如果我使用sc.nextInt(),那么如何使用if-ELSE块向用户打印消息?我希望在输入一个字符时,我可以将其转换为ASCII整数值,并检入IF块。好的,您可能需要编辑问题,以说明您想要专门转换字符。但字符不也是一个可能的字符串吗?即使我输入,例如“tyf”the parseInt()的字符串也不会返回ASCII整数值。不,它不是这样工作的。“tyf”的int结果是什么?其字符的ASCII值之和,还是将这些值串联为字符串?我已经编辑了我的答案。但是parseInt()不应该返回字符串的ASCII整数值吗?@ArhatBaid查找内部实现,您将得到所有答案,但parseInt()不应该返回字符串的ASCII整数值吗?@ArhatBaid查找内部实现,你会得到你所有的答案,这就是我最后以一种不同的方式所做的。是的,这就是我最后以一种不同的方式所做的。
Scanner sc = new Scanner(System.in);
length = sc.nextLine();
//length_to_play = Integer.valueOf(length); didn't work
char ch = length.charAt(0);
length_to_play=Character.getNumericValue(ch); //worked