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

我是 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);  

        }

    }

}


哔哔one
浏览 294回答 2
2回答

茅侃侃

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

胡说叔叔

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

相关分类

Java