我想从下面的字符串中获得输出第一秒:
first-second-third
基本上我想要的是在最后一个破折号( - )之前获取字符串。 谁能给我一个最好的解决方案?
答案 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));