我有一个由日期组成的 ArrayList
。所有日期都采用这种格式:
“日月时区年”。例如,Wed Aug 10:15:17 AST 2016。
我需要在第二个“:”处拆分字符串。这是我执行此操作的代码。
int dateSize = date.size();
int i = 0;
ArrayList<String> splitDate = new ArrayList<String>();
splitDate.clear();
while(i < dateSize) {
String[] splitString = date.get(i).split(":" + 1);
splitDate.add(splitString[0]);
Log.i("info", String.valueOf(splitDate));
i++;
}
ArrayList
包含大约 50 个项目。起初,这段代码有效。它将此打印到日志中,
Wed Sep 14 23:30,这就是我想要的。
然后,它随机开始打印这个,
Wed Sep 14 23:30, Wed Sep 14 23:24:36 AST 2016, Wed Sep 14 23, Wed Sep 14 22, Wed Sep 14 22, Tue Sep 13 22, Tue Sep 13 22, Tue Sep 13 22:07:33 AST 2016, Mon Sep 12 20
有时它拆分第二个“:”,有时它拆分第一个“:”,有时它不拆分任何东西。我不明白为什么会这样。如果我将代码更改为此,
String[] splitString = date.get(i).split(":");
splitDate.add(splitString[0]);
它完美地工作。所有内容都像这样打印到日志中,Wed Aug 10,无一异常(exception)。
我的做法是否正确?
最佳答案
好吧,首先这不是你想要的
String[] splitString = date.get(i).split(":" + 1);
这是对字符串 ":1"的拆分
你想要做的是在“:”上拆分,然后获取数组中的前两个条目并将它们连接起来
String[] splitString = date.get(i).split(":");
splitDate.add(splitString[0] + ":" + splitString[1]);
关于java - 在数组列表Java中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39549799/