Java Lastindexof()不是';行不通

Java Lastindexof()不是';行不通,java,substring,Java,Substring,例如,我在文本文件中有两行数据: 你好早晨 你好晚上 我只想说最后一句话。我使用了这段代码,但它没有显示晚上而是显示嗨!晚上searchName在哪里 try{ BufferedReader in = new BufferedReader(fr); try { while((s=in.readLine())!=null){ countline++;

例如,我在文本文件中有两行数据: 你好早晨 你好晚上

我只想说最后一句话。我使用了这段代码,但它没有显示晚上而是显示嗨!晚上searchName在哪里

try{
            BufferedReader in = new BufferedReader(fr);

            try {
                while((s=in.readLine())!=null){
                    countline++;
                    String[] words=s.split(" ");


                    for(String word:words){
                        if(word.contains(searchName)){
                            System.out.println(words);
                            int lastSpace=word.lastIndexOf(" ");
                            String addres=word.substring(lastSpace+1,word.length());

                            System.out.println(addres);

                        }
                    }
                }
                in.close();

            } catch (IOException e) {
                System.out.println("No address found for your name..We are updating");
            }
        }finally {

        }

您可能需要阅读
split()
的API

如果你想知道一行的最后一个字,你已经知道了。它会在

words[words.length - 1].
如果您仍然想使用
lastIndexOf()
,您可以,但不必在这些元素上使用
split()
,然后使用循环,您只需要

String addres = word.substring(word.lastIndexOf(" ") + 1);

但你不能两者兼得。当前,通过使用
split()
将字符串切碎,然后在切碎的
字符串的每个部分中查找空格,可以从
字符串中删除所有空格

看起来像是家庭作业问题。所以我不会提供确切的答案

下面的代码应该解释如何正确使用split()并获取所有值:

String in = "Hello! Morning Hi! Evening";

String[] words = in.split(" ");

for (int i = 0; i < words.length; i++) {

    if(words[i].equals(yourSearchString)){
      System.out.println("Your Search String" + words[i]);
    }
}
// to get the last word
 String lastWord = words[words.length - 1];
String in=“你好!早上好!晚上好”;
字符串[]字=in.split(“”);
for(int i=0;i
我不明白为什么我的单词没有用空格分隔。后来我注意到,我在这些单词之间使用了tab。int lastSpace=word.lastIndexOf(“\t”);这起作用了