我正在使用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 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它们。