Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在两个特定字符之间选择字符串_Java_String - Fatal编程技术网

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

Java 如何在两个特定字符之间选择字符串,java,string,Java,String,标题很难理解,请原谅我,谢谢 假设我有这样一个字符串: 表示日期的2013年1月1日或2013年11月1日或2013年11月12日 我所要的只是中间的字符串/**,这意味着这个月。 我没有尝试任何东西,因为我不知道在另一个字符串中间得到一个字符串。 有人能告诉我一些想法吗?或者如果您曾经解决过此类问题,请提前分享解决方案,谢谢。只需在/上使用拆分,然后取第二个值: String date = "1/12/2013"; String month = date.split("/")[1]; 这里我

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

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

我所要的只是中间的字符串/**,这意味着这个月。

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

有人能告诉我一些想法吗?或者如果您曾经解决过此类问题,请提前分享解决方案,谢谢。

只需在
/
上使用拆分,然后取第二个值:

String date = "1/12/2013";
String month = date.split("/")[1];
这里我们将第一个“/”的索引和第二个“/”的索引作为参数传递给substring(),它将按照您的要求返回介于“/”和“/”之间的字符串

试试看

SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
System.out.println(dateFormat.format(new SimpleDateFormat("dd/MM/yyyy").
                                                       parse("11/12/2013")));

注意,这比拆分、解析或正则表达式更有效。没有创建任何额外的对象,即使String.substring是特殊的,它在不复制的情况下共享内部字符缓冲区。

您可以按/字符将字符串拆分为如下数组:

String[] dateArray = date.split ("/");
然后,月份是第二个元素:

String month = dateArray[1];

其他答案涵盖了大多数好答案。另一种可能是过度杀伤力的方法是


您是否尝试过
str.subSequence(begin,end)
?在我看来,最好将其解析为日期对象,然后访问其month属性。你以后也可以使用这个对象。我认为这对我的情况不太好,因为“/”的位置不在固定位置。天哪,像天堂一样工作。。。非常感谢:)我又活了。@EdwardSullen:不客气。:)
String[] dateArray = date.split ("/");
String month = dateArray[1];
 Pattern p = Pattern.compile("/.*/");
 Matcher m = p.matcher("1/1/2013");
 String month = m.group();