【发布时间】:2021-01-25 13:15:21
【问题描述】:
我有一个日期为“10/10/2020”的字符串输入(假设它们总是用 / 分隔),我试图将每个类别存储在一个已定义为月、日和年。
我使用 parseInt、indexOf 和 substring 方法来查找月份并将其存储在月份变量中,但我很难弄清楚如何让程序读取日期。我们假设月份和日期可以是“00”或“0”格式。
这就是我从字符串中读取月份的方式,这是我到目前为止读取日期的方式,但我遇到了一个错误。
java.lang.StringIndexOutOfBoundsException: 开始 2,结束 0,长度 8
这是我目前的代码,请告诉我我在做什么错误。
int firstSlash = date.indexOf("/");
int secondSlash = date.indexOf("/", firstSlash);
month = Integer.parseInt (date.substring (0, firstSlash));
day = Integer.parseInt (date.substring(firstSlash+1, secondSlash-1));
我不想要答案,但请帮助我理解我出错的逻辑,因为根据我的理解,我似乎在第一个和第二个斜杠之间获取索引值并将字符串值转换为 int .
【问题讨论】:
-
您不应该手动解析。有图书馆,例如日历
-
但假设您确实想自己解析,请使用 split ("/")
-
它用于课堂作业,这就是我们被告知手动完成的原因。我需要一些帮助来理解逻辑。
-
在“现实世界”中 - 使用标准 JAVA 日期库!如果您的(诚然人为的)家庭作业不允许您这样做,请考虑使用regex。其他一切都失败了,您的“firstSlash”代码看起来不错。您需要添加一些“诊断临时变量”和/或逐步调试器来解决剩余代码的问题。
begin 2, end 0应该给你一个关于问题的提示:) 仅供参考,“split()”也应该工作......
标签: java string date date-format dateformatter