Java - 具有多个破折号的拆分字符串

时间:2017-09-06 09:12:56

标签: java split

我想从下面的字符串中获得输出第一秒

first-second-third

基本上我想要的是在最后一个破折号( - )之前获取字符串。 谁能给我一个最好的解决方案?

3 个答案:

答案 0 :(得分:2)

好吧,很多投票,但我会添加一个解决方案

最有效的方法是使用java.lang.String# lastIndexOf ,它返回指定字符最后一次出现的字符串中的索引,向后搜索

如果短划线不存在,

lastIndexOf将返回-1

String str = "first-second-third";
int lastIndexOf = str.lastIndexOf('-');
System.out.println(lastIndexOf);
System.out.println(str.substring(0, lastIndexOf)); // 0  represent to cut from the beginning of the string

输出:

  

12

     

第一 - 第二

答案 1 :(得分:0)

String s = "first-second-third";
String newString = s.substring(0,s.lastIndexOf("-"));

答案 2 :(得分:0)

除了 lastIndex 方法之外,还可以使用正则表达式,请尝试下面的代码:

Pattern p = Pattern.compile("\\s*(.*)-.*");
Matcher m = p.matcher("first-second-third");
if (m.find())
    System.out.println(m.group(1));