gpt4 book ai didi

java - 为什么 Integer.parseInt(String) 会出现 numberformatException?

转载 作者:行者123 更新时间:2023-12-02 01:51:35 24 4
gpt4 key购买 nike

我觉得解决方案非常简单,但我现在盯着它看了 10 分钟,但在我的代码中找不到任何错误。说真的。

eventDateStart是一个整数。整数通常需要 8 个字符来进行字符串到 int 的转换,我不明白为什么 Java 不能转换它,我就像......呃??

代码正在产生 NumberFormatException:

String rruleMonthday = "-1";

//where ar rrule is sth like --> RRULE:FREQ=MONTHLY;BYMONTHDAY=29
int firstMonthday = (rrule.indexOf("BYMONTHDAY=") + 11);

try {
rruleMonthday = rrule.substring(firstMonthday, rrule.indexOf(";", firstMonthday));
} catch (Exception ex) {
rruleMonthday = rrule.substring(firstMonthday, rrule.indexOf("\n", firstMonthday));
}

eventDateStart = eventDateStart.substring(0, 6) + rruleMonthday;

System.out.println("eventDateStart: ." + eventDateStart + ".");


System.out.println("2: " + Integer.parseInt(eventDateStart)); //this Integer.parseInt conversion is printing numberformatexception


输出:

eventDateStart: .20200329.

java.lang.NumberFormatException: For input string: "20200329"

最佳答案

根据 ASCII table序列 50,48,50,48,48,51,50,5720200329 值。在您的情况下,它后面跟着一个回车符13

您很可能使用的是 Windows,其中行结束序列为 \r\n。使用 System.lineSeparator() 而不是 \n使您的代码平台独立:

} catch (Exception ex) {
rruleMonthday = rrule.substring(firstMonthday,
rrule.indexOf(System.lineSeparator(), firstMonthday));
}

关于java - 为什么 Integer.parseInt(String) 会出现 numberformatException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60921268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com