【发布时间】:2017-07-26 16:30:59
【问题描述】:
我正在尝试将包含日期的字符串转换为 char 数组,然后提取月份并进行转换。
我正在使用 API,服务器提供的日期格式为:“2015-04-10”,我正在尝试将其转换为:“2015 年 4 月 10 日”。
- 我将从服务器接收到的日期存储在一个字符串中。
- 我正在将整个字符串转换为一个字符数组。
- 我在这个数组中运行一个循环并将它分成三个数组: 年月日。
- 我将这些数组分别转换为字符串。
- 然后我将“月”字符串与值进行比较,然后使用 if-else 条件为其分配月份名称。
- 最后,我将按照我想要的顺序添加三个字符串。
Android Studio 说:java.lang.ArrayIndexOutOfBoundsException: length=2; index=5
这是我的代码:('temp' 是包含日期的字符串)
//TODO: Here lies the method which will apparently convert the movie string to human read-able format...... Use it with caution.
char release[] = temp.toCharArray();
Log.d("LOG", release.toString());
char date[] = new char[2];
char year[] = new char[4];
char month[] = new char[2];
for (int i = 0; i < 11; i++) {
try {
if (i > 4 && i < 7) {
month[i] = release[i];
}
if (i < 4) {
year[i] = release[i]; // ---> Android Studio says error on this line...
}
if (i > 7 && i < 10) {
date[i] = release[i];
}
} catch (Error error) {
error.printStackTrace();
}
}
String monthString = month.toString();
String dateString = date.toString();
String yearString = year.toString();
String finalReleaseDate;
if (monthString.contentEquals("01")) {
monthString = "January";
} else if (monthString.contentEquals("02")) {
monthString = "February";
} else if (monthString.contentEquals("03")) {
monthString = "March";
} else if (monthString.contentEquals("04")) {
monthString = "April";
} else if (monthString.contentEquals("05")) {
monthString = "May";
} else if (monthString.contentEquals("06")) {
monthString = "June";
} else if (monthString.contentEquals("07")) {
monthString = "July";
} else if (monthString.contentEquals("08")) {
monthString = "August";
} else if (monthString.contentEquals("09")) {
monthString = "September";
} else if (monthString.contentEquals("10")) {
monthString = "October";
} else if (monthString.contentEquals("11")) {
monthString = "November";
} else if (monthString.contentEquals("12")) {
monthString = "December";
}
finalReleaseDate = dateString + " " + monthString + ", " + yearString;
movieModel.setReleaseDate(finalReleaseDate);
logcat 中的消息是:java.lang.ArrayIndexOutOfBoundsException: length=2; index=5(我已经标记了显示此错误的行..)
请帮忙!!
【问题讨论】:
-
尝试使用SimpleDateFormat,它会为你省去很多痛苦:docs.oracle.com/javase/7/docs/api/java/text/…
-
一个明显的错误是,比如说
i=5所以month[i]异常,做一些调试并按照上面的建议做 -
你是一个声明一个大小为 2 的数组: char month[] = new char[2];并制作一个比这更大的循环 for (int i = 0; i 4 && i
标签: java android arrays string android-studio