标题很难理解,请原谅我,谢谢。
假设我有一个这样的字符串: 2013年1月1日或2013年1月11日或11/12/2013代表日期。
我想要的只是/ ** /中间的字符串,意思是月份。
我还没有尝试任何东西,因为我不知道在另一个字符串的中间有一个字符串。
有人可以给我任何想法,或者如果你曾经解决过这类问题请分享解决方案,提前谢谢。
答案 0 :(得分:6)
只需使用split()
拆分/
,然后取第二个值:
String date = "1/12/2013";
String month = date.split("/")[1];
答案 1 :(得分:2)
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
System.out.println(dateFormat.format(new SimpleDateFormat("dd/MM/yyyy").
parse("11/12/2013")));
答案 2 :(得分:2)
其他答案涵盖了最好的答案。另一种可能过度杀戮的方法是regular expressions
Pattern p = Pattern.compile("/.*/");
Matcher m = p.matcher("1/1/2013");
String month = m.group();
答案 3 :(得分:1)
String date = "11/12/20113";
String month = date.substring(date.indexOf("/")+1, date.lastIndexOf("/"))
这里我们将第一个“/”的索引和第二个“/”的索引作为参数传递给substring(),它将返回“/”和“/”之间的字符串,就像你问的那样! / p>
答案 4 :(得分:1)
尝试
String s = "1/12/2013";
String m = s.substring(s.indexOf('/') + 1, s.lastIndexOf('/'));
请注意,这比分割,解析或正则表达式更有效。没有创建任何额外的对象,甚至String.substring是特殊的,它共享内部char缓冲区而不复制。
答案 5 :(得分:0)
您可以使用/字符将字符串拆分为如下数组:
String[] dateArray = date.split ("/");
这个月是第二个元素:
String month = dateArray[1];