2016-08-15 5 views
-2

У меня есть 2 строки данных в текстовом файле в качестве примера: Здравствуйте! Утро Привет! ВечерLastindexof() не работает

Я хочу только последнее слово строки. Я использовал этот код, но вместо того, чтобы показывать Вечер показывает Привет! Вечер где 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 { 

     } 

ответ

0

Вы можете прочитать на API из split(). http://www.tutorialspoint.com/java/java_string_split.htm

Если вы хотите получить последнее слово строки, вы уже получили его. Это будет в

words[words.length - 1]. 

Если вы все еще хотите использовать lastIndexOf(), вы можете, но вместо использования split() с последующей петлей на эти элементы, вы просто хотите

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

Но вы не могут действительно сделать оба. В настоящее время вы удаляете все пробелы из String, разбивая его на split(), а затем ищите пробелы в каждой части нарезанного String.

0

Похоже, вопрос о домашней задаче. Поэтому не будет даваться точный ответ.

Следующий фрагмент кода должен объяснить вам о том, как использовать сплит() правильно и получить все значения:

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]; 
+1

Я был смущен, почему мое слово не расщепляется с space.Later я заметил, у меня было используется табуляция между этими словами. int lastSpace = word.lastIndexOf ("\ t"); это сработало –

Смежные вопросы