我有一个字符串4.9.14_05_29_16_21
,我只需要4.9
。数字不同,所以我不能简单地得到这个char数组的前三个元素。我必须找到最合适的.
并将其子串到那里。
我来自Python,因此我将展示Python方法。
def foobar(some_string):
location = some_string.rfind('.')
new_string = some_string[0:location]
return new_string
我如何用Java做到这一点?
答案 0 :(得分:4)
使用String#lastIndexOf
和String#substring
:
int location = someString.lastIndexOf('.');
String newString = someString.substring(0, location);
另请注意,我已经假定了Java的命名约定(即camelCase)。如果可能存在输入不包含句点的情况,您可以检查location
是否为否定并包含处理该案例的逻辑。
答案 1 :(得分:3)
您应该使用以下方法:
如果字符串不包含任何.
,请务必进行错误检查,即lastIndexOf
返回-1
。
public String getBeforePeriod(String input) {
int index = input.lastIndexOf('.');
return index > -1 ? input.substring(0,index) : input;
}
答案 2 :(得分:0)
使用String.indexOf()方法为substring()方法提供一秒参数。 这是一个更多信息的链接。 http://www.tutorialspoint.com/java/java_string_indexof.htm