我是 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);
事实上,它是第二个字符。也就是说,空格然后你会转向数字,你会得到一个错误。
胡说叔叔
TA贡献1804条经验 获得超8个赞
乍一看我能看到的是 s.charAt(int index) 返回一个字符,所以你实际上需要检查的是:s.charAt(0).equals('0'),第二,有更好的处理日期的方法,例如使用数据类型 Date,它允许您调用返回日/月/年的函数。希望能帮助到你。
添加回答
举报
0/150
提交
取消