-2

标题比较难理解,请见谅,谢谢。

假设我有一个这样的字符串: 1/1/2013 或 11/1/2013 或 11/12/2013 代表日期。

我想要的只是 /**/ 中间的字符串,表示月份。

我还没有尝试任何东西,因为我不知道在另一个字符串的中间得到一个字符串。

有人可以给我任何想法,或者如果您曾经解决过此类问题,请分享解决方案,在此先感谢。

4

6 回答 6

6

只需使用split()to split on /,并取第二个值:

String date = "1/12/2013";
String month = date.split("/")[1];
于 2013-01-04T06:52:47.243 回答
2
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
System.out.println(dateFormat.format(new SimpleDateFormat("dd/MM/yyyy").
                                                       parse("11/12/2013")));
于 2013-01-04T06:55:01.640 回答
2

其他答案涵盖了大多数好的答案。另一种可能过度杀戮的方法是正则表达式

 Pattern p = Pattern.compile("/.*/");
 Matcher m = p.matcher("1/1/2013");
 String month = m.group();
于 2013-01-04T06:58:16.370 回答
1
String date = "11/12/20113";
String month = date.substring(date.indexOf("/")+1, date.lastIndexOf("/")) 

在这里,我们将第一个“/”的索引和第二个“/”的索引作为参数传递给 substring(),它将返回“/”和“/”之间的字符串,就像你问的那样!

于 2013-01-04T06:54:52.357 回答
1

try

    String s = "1/12/2013";
    String m = s.substring(s.indexOf('/') + 1, s.lastIndexOf('/'));

note that this is much more efficient than splitting, parsing or regex. No one extra object is created, even String.substring is special, it shares inner char buffer without copying.

于 2013-01-04T06:56:17.673 回答
0

You can split the string by the / character into an array like this:

String[] dateArray = date.split ("/");

The month is then the second element:

String month = dateArray[1];
于 2013-01-04T06:57:07.297 回答