为了账号安全,请及时绑定邮箱和手机立即绑定

我如何摆脱我的 java.lang.NumberFormatException?

我如何摆脱我的 java.lang.NumberFormatException?

哔哔one 2021-12-22 20:12:07
我是 Java 新手。我一直在尝试运行一个程序,但它给了我这个错误。我不明白为什么它不起作用。我的输入绝对是一个字符串,该方法返回一个 int。所以我很困惑为什么我会收到格式异常?感谢任何可以提供帮助的人。public class TestAA3 {    public static void main(String[] args) {         int day = getDay("04/09/2034");        System.out.print(day);       }    public static String getSubstring( String s, int i, int j) {        // declaring the String that will eventually be modified and returned by the method        String Substring = " ";         // error message        if (j<i) {            throw new IllegalArgumentException("The second integer must be greater than the first");        } else {            // defining the limits of the new string            for ( int position = i;position<=j; position++) {                // new value of the String                Substring += " " + s.charAt(position);            }            return Substring;        }    }    // calling getSubstring and defining the position inside the string of the int that will be returned    public static int getDay(String s) {        if (s.charAt(0)==0){            String dayString = getSubstring(s,1,1);            return Integer.valueOf(dayString);        } else {            String dayString = getSubstring(s,0,1);            return Integer.valueOf(dayString);          }    }}
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

Substring += " " + s.charAt(position);应该初始化为"". 您初始化空间并在方法之前添加两个空格。getSubstring(s,1,1);事实上,它是第二个字符。也就是说,空格然后你会转向数字,你会得到一个错误。


查看完整回答
反对 回复 2021-12-22
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

乍一看我能看到的是 s.charAt(int index) 返回一个字符,所以你实际上需要检查的是:s.charAt(0).equals('0'),第二,有更好的处理日期的方法,例如使用数据类型 Date,它允许您调用返回日/月/年的函数。希望能帮助到你。


查看完整回答
反对 回复 2021-12-22
  • 2 回答
  • 0 关注
  • 291 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信