我有一个由日期组成的ArrayList。所有日期均采用以下格式:

“日月时间时区年”。例如,AST 2016年8月10日星期三15:15:17。

我需要在第二个“:”处分割字符串。这是我的代码。

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个项目。首先,此代码有效。它将其打印到日志中,

我想要的是9月14日星期三23:30。

但随后,它开始随机打印


  2016年9月14日星期三23:30,9月14日星期三23:24:36 AST 2016年9月14日星期三9月14日
  14 22,周三9月14 22,周二9月13 22,周二9月13日22,周二9月13
  AST 2016,9月12日,星期一22:07:33


有时会拆分第二个“:”,有时会拆分第一个“:”,有时不拆分任何内容。我不知道为什么会这样。如果我将代码更改为此,

String[] splitString = date.get(i).split(":");
splitDate.add(splitString[0]);


它完美地工作。一切都将像这样打印在日志上,8月10日星期三,无一例外。

我的方法正确吗?

最佳答案

好吧,首先这不是您想要的

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/

10-15 03:15