如何在Java中找到String中的最后一个单词?

时间:2015-11-23 02:39:54

标签: java string

如何找到字符串的最后一个单词?我不是想找一个固定的单词,换句话说,我不知道最后一个单词是什么,但是我想找回它。

5 个答案:

答案 0 :(得分:5)

这是我的代码:

myString = myString.trim();
String[] wordList = myString.split("\\s+");
System.out.println(wordList[wordList.length-1]);

答案 1 :(得分:4)

假设您考虑用空格和标点符号(特别是逗号,空格,换行符,括号等)分隔的句子中的单词,这意味着标点符号可以出现在句子的末尾,并且您希望包括单词中的非ASCII字符,然后下面将找到字符串中的最后一个单词而不包含标点符号

static String lastWord(String sentence) {
    Pattern p = Pattern.compile("([\\p{Alpha}]+)(?=\\p{Punct}*$)", Pattern.UNICODE_CHARACTER_CLASS);
    Matcher m = p.matcher(sentence);
    if (m.find()) {
        return m.group();
    }
    return ""; // or null
}

正则表达式使用预测来在字符串的末尾找到零或多个标点符号,并匹配其前面的字母词。

如果您还想允许单词中的数字,请将{Alpha}更改为{Alnum}

答案 2 :(得分:3)

阅读String API以了解您可能使用的各种方法。

例如你可以:

  1. 使用lastIndexOf(...)方法查找单词开头的位置
  2. 然后使用substring(...)方法获取单词

答案 3 :(得分:0)

为此使用StringTokenizer     StringTokenizer st = new StringTokenizer("this is a test"); //获取任何字符串         int count = st.countTokens(); //它将计算该特定字符串中的标记数

String[] myStringArray = new String[count];
for (int i = 0; i < count; i++) {
        `myStringArray[i] = st.nextToken();`//insert the words/Tken in to the string array
    }
    `System.out.println("Last Word is--" +  myStringArray[myStringArray.length - 1])`;//get the last words of the given String

答案 4 :(得分:0)

    System.out.println("enter the string");
    Scanner input = new Scanner(System.in);
    String instr = input.nextLine();
    instr = instr.trim();
    int index = instr.lastIndexOf(" ");
    int l = instr.length();
    System.out.println(l);
    String lastStr = instr.substring(index+1,l);
    System.out.println("last string .."+lastStr);