我正在尝试界定,
和空格,我的输入为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
,则可以正常工作。
答案 0 :(得分: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);
答案 1 :(得分:0)
您也可以使用String#replaceAll执行此操作:
s.replaceAll(",\\s*", "-");
答案 2 :(得分:0)
试试这个,
String date = " 21 , May, 2012";
String[] s1 = date.split(",\\s*");
System.out.println(s1[2].trim() + "-" + s1[1].trim() + "-" + s1[0].trim());