如何将字符串转换为字符串数组?

时间:2019-07-15 01:26:41

标签: java parsing split

例如,我希望将字符串"1:00 pm 2:00 pm 3:00 pm"转换为["1:00 pm", "2:00 pm", "3:00 pm"]的字符串数组

我尝试使用split。但这会产生["1:00", "pm", "2:00", "pm", "3:00", "pm"]。我将如何分割其他空间?谢谢。

3 个答案:

答案 0 :(得分:4)

split使用正则表达式,正则表达式(?<=m)使用m作为分隔符并包括在内来分割字符串。但是第二个元素中还会有多余的空字符,您可以使用trim()方法将其删除

String s =  "1:00 pm 2:00 pm 3:00 pm";

String[] arr = s.split("(?<=m)");

System.out.println(Arrays.toString(arr));   //[1:00 pm,  2:00 pm,  3:00 pm]

答案 1 :(得分:2)

对于您的问题,我建议使用正式的Java正则表达式匹配器。原因是您的时间字符串可能会显示为较大字符串的一部分。

String input = "1:00 pm 2:00 pm 3:00 pm";
String pattern = "(?i)\\d{1,2}:\\d{2} [ap]m";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
while (m.find()) {
     System.out.println("Found a time: " + m.group(0));
}

此打印:

Found a time: 1:00 pm
Found a time: 2:00 pm
Found a time: 3:00 pm

答案 2 :(得分:0)

您可以使用Java的indexOf方法来查找每个空间的索引,而仅将其他每个空间都考虑在内。然后,根据您对空格的了解创建一个子字符串,并将其添加到数组中。