String sentence = "Any simpler way to get the last element of a Java array?";
String lastToken = sentence.split(" ")[sentence.split(" ").length-1];
我想分割句子并获得最后一个标记。我觉得我这样做有点太尴尬了。基本上,我希望第二个陈述更短。这可能吗?
编辑:我正在寻找:1)无需单独声明数组2)无需将句子拆分两次。如果有一个名为last
的数组方法会很好。我怀疑这是不可能的,但我想确定。
答案 0 :(得分:14)
您只需将其拆分一次,然后取最后一个元素。
String sentence = "Any simpler way to get the last element of a Java array?";
String[] tokens = sentence.split(" ");
String lastToken = tokens[tokens.length-1];
这很尴尬,但除非你预先知道字符串的长度,否则除此之外别无他法。
答案 1 :(得分:14)
获取最后一个标记/单词的另一种方法
String lastToken = sentance.replaceAll(".* ", "");
答案 2 :(得分:4)
String sentence = "Any simpler way to get the last element of a Java array?";
String lastToken = sentence.substring( sentence.lastIndexOf(" ") + 1);
答案 3 :(得分:4)
如果你这样做一次,那么Peter Lawrey的解决方案就更短了,虽然IMO比原版更难理解。
如果您在多个地方这样做,那么以下情况会更好:
public String lastToken(String str, String separatorRegex) {
String tokens[] = str.split(separatorRegex);
return tokens[tokens.length - 1];
}
然后
String lastToken = lastToken(sentence, " ");
......比任何聪明的黑客都更优雅...... IMO。
我更普遍的观点是,花费一段时间来缩短代码的时间可能浪费时间......或者更糟:
但是如果你在许多地方重复那行代码(或类似代码),那么最好的解决方案就是使用程序抽象。写一个静态或实例方法......一次......并多次调用它。