2

我正在尝试分隔,我的输入是21, May, 2012我的输出应该是的空间2012-May-21

String s = args[0];
String[] s1 = s.split(",\\s+");
System.out.print(s1[2] + "-" + s1[1] + "-" + s1[0]);

如果我只写,定界符,但ArrayIndexOutOfBoundsException在尝试将空格作为定界符时,它会起作用。

4

3 回答 3

6

由于这两个,,空格都是可选的,如评论中所述。

String[] s1 = s.split(",|\\s+");

虽然我不会使用正则表达式来解析日期

 input=input.replaceAll("\\s*","");//remove any space if any
 java.util.Date date= (new SimpleDateFormat("dd,MMM,yyyy")).parse(input);
 String output=(new SimpleDateFormat("yyyy-MMM-dd")).format(date);
于 2013-09-18T06:55:27.860 回答
0

您也可以使用String#replaceAll执行此操作:

 s.replaceAll(",\\s*", "-");
于 2013-09-18T07:32:54.837 回答
0

尝试这个,

    String date = " 21 , May, 2012";
    String[] s1 = date.split(",\\s*");
    System.out.println(s1[2].trim() + "-" + s1[1].trim() + "-" + s1[0].trim());
于 2013-09-18T08:28:48.350 回答