如何在两个特定字符之间选择一个字符串

时间:2013-01-04 06:50:30

标签: java string

标题很难理解,请原谅我,谢谢。

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

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

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

有人可以给我任何想法,或者如果你曾经解决过这类问题请分享解决方案,提前谢谢。

6 个答案:

答案 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];