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

コードに1行追加しました。ここでは何も削除されていません。

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
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 に答える
2

これはあなたのニーズに合っています:

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

例えば:

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

戻り値:

[This, is, a]
于 2013-01-15T10:38:25.693 に答える