Java:获取分割后的最后一个元素
我正在使用string拆分方法,我想要最后一个元素。 数组的大小可以改变。
例:
String one = "Düsseldorf - Zentrum - Günnewig Uebachs" String two = "Düsseldorf - Madison"
我想分割上面的string,并得到最后一个项目:
lastone = one.split("-")[here the last item] // <- how? lasttwo = two.split("-")[here the last item] // <- how?
我不知道在运行时数组的大小:(
将数组保存在局部variables中,并使用数组的length
字段来查找其长度。 减去一个来解释它是基于0的:
String[] bits = one.split("-"); String lastOne = bits[bits.length-1];
或者你可以在String上使用lastIndexOf()
方法
String last = string.substring(string.lastIndexOf('-') + 1);
使用一个简单但通用的辅助方法,如下所示:
public static <T> T last(T[] array) { return array[array.length - 1]; }
你可以重写:
lastone = one.split("-")[..];
如:
lastone = last(one.split("-"));
您可以使用Apache Commons中的StringUtils类:
StringUtils.substringAfterLast(one, "-");
String str = "www.anywebsite.com/folder/subfolder/directory"; int index = str.lastIndexOf('/'); String lastString = str.substring(index +1);
现在lastString
的值是"directory"
番石榴 :
final Splitter splitter = Splitter.on("-").trimResults(); assertEquals("Günnewig Uebachs", Iterables.getLast(splitter.split(one))); assertEquals("Madison", Iterables.getLast(splitter.split(two)));
Splitter
, Iterables
由于他要求所有在同一行使用拆分,所以我build议这样做:
lastone = one.split("-")[(one.split("-")).length -1]
我总是尽量避免定义新的variables,我觉得这是一个非常好的做法
你的意思是在编译时你不知道数组的大小? 在运行时,可以通过lastone.length
和lastwo.length
的值来find它们。