7

除了字符串中的最后一个单词之外,获取字符串中每个单词的最简单方法是什么?

到目前为止,我一直在使用以下代码来获得最后一句话:

String listOfWords = "This is a sentence";
String[] b = listOfWords.split("\\s+");
String lastWord = b[b.length - 1];

然后通过使用 remove 方法从字符串中删除最后一个单词来获取字符串的其余部分。

我不想使用该remove方法。有没有类似于上面这组代码的方法来获取没有最后一个单词和最后一个空格的字符串?

4

6 回答 6

22

像这样:

    String test = "This is a test";
    String firstWords = test.substring(0, test.lastIndexOf(" "));
    String lastWord = test.substring(test.lastIndexOf(" ") + 1);
于 2013-01-15T10:33:05.460 回答
7

您可以获取 lastIndexOf 空白空间并使用如下子字符串:

String listOfWords = "This is a sentence";
int index = listOfWords.lastIndexOf(" ");
System.out.println(listOfWords.substring(0, index));
System.out.println(listOfWords.substring(index+1));

输出:

        This is a
        sentence
于 2013-01-15T10:32:50.130 回答
4

尝试String.lastIndexOf结合使用该方法String.substring

String listOfWords = "This is a sentence";
String allButLast = listOfWords.substring(0, listOfWords.lastIndexOf(" "));
于 2013-01-15T10:33:22.887 回答
3

我在您的代码中添加了一行。这里没有任何东西被删除。

String listOfWords = "This is a sentence";
String[] b = listOfWords.split("\\s+");
String lastWord = b[b.length - 1];
String rest = listOfWords.substring(0, listOfWords.indexOf(lastWord)).trim(); // Added
System.out.println(rest);
于 2013-01-15T10:33:40.257 回答
2

这将满足您的需求:

.split("\\s+[^\\s]+$|\\s+")

例如:

"This is a sentence".split("\\s+[^\\s]+$|\\s+");

回报:

[This, is, a]
于 2013-01-15T10:38:25.693 回答
2
public class StringArray {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        String sentence = "this is a sentence";

        int index = sentence.lastIndexOf(" ");

        System.out.println(sentence.substring(0, index));

    }
}
于 2013-01-15T14:08:27.060 回答