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