2016-08-15 30 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

あなたはsplit()のAPI上に読みたいかもしれません。 http://www.tutorialspoint.com/java/java_string_split.htm

行の最後の単語が必要な場合は、すでに取得済みです。それでもlastIndexOf()を使用する場合それはあなたができる、

words[words.length - 1]. 

になるだろうが、むしろこれらの要素のループが続くsplit()を使用するよりも、あなただけ

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

をお勧めします。しかし、あなた本当に両方を行うことはできません。現在、Stringからすべてのスペースを削除する場合は、split()で切り取ってから、Stringの各部のスペースを探してください。

0

宿題のように見えます。正確な答えは得られません。

次のコードは、適切に)分割(使用方法であなたを説明し、すべての値を取得する必要があります私の言葉は、私が気づいspace.Laterでsplitedなかった理由を、私は持っていた私は混乱していた

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

をこれらの単語の間にタブを使用します.int lastSpace = word.lastIndexOf( "\ t");これは働いた –

関連する問題