2016-04-04 21 views
3

最後から二番目の単語を取得、私は必要なもの分割文字列とは、私は、文字列持つ

が、私は第二の最後の言葉が必要である「海、こんにちは、どのように、あなたは、ある」

String string = "Hai,Hello,How,are,you"; 

String[] bits = string.split(","); 
String lastWord = bits[bits.length-1] 
tvs.setText(lastWord); 
「です」

しかし、私はこのようでした:

String lastWord = bits[bits.length-2]; 

私は2番目の最後の単語を取得しておりません。

+1

文字または語句? – Hackerdarshi

+1

配列は0番目のインデックスから始まります。あなたが望む言葉はbits.length-2の場所にあります – Jeet

+0

私はそれを与えました...しかし、私は持っていません.. – Jocheved

答えて

4

あなたが必要としているのはString lastWord = bits[bits.length-2];です。bits[bits.length-1];はあなたに最後の単語を返します。最後の単語は返しません。

これは、配列のインデックス付けが0で始まり、length-1で終了するためです。まずあなたが最後の文字のインデックスを「」を見つけるために持っている。ここ

String string = "Hai,Hello,How,are,you"; 
String[] bits = string.split(","); 
String lastWord = bits[bits.length - 2]; 
tvs.setText(lastWord); 
+0

私はそのように与えました..しかし、私は結果を得ていません – Jocheved

+3

@Jochevedあなたは別の問題があります。この回答は正しいです。 – f1sh

+0

@Jochevedあなたは本当ですか?それは私にはうまく見えます:http://ideone.com/FTgJWw – user2004685

1

:ここ

は、更新されたコードスニペットです。 最後に2番目の文字「、」の後に。 その後、それらの間のサブストリングを見つけることができます。

String string = "Hai,Hello,How,are,you"; 
     int lastIndex,secondLastIndex; 
     lastIndex=string.lastIndexOf(','); 
     secondLastIndex=string.lastIndexOf(',',lastIndex-1); 
     System.out.println(string.substring(secondLastIndex+1,lastIndex)); 

試してみてください。

1

私はこのように思っています。

コードが次のような場合は動作しません。

String string = "Hai,Hello,How,are,"; 
String[] bits = string.split(","); 
 ↓ 
bits[]…{ "Hai","Hello","How","are" } 
bits[bits.length-2]…"How" 

このコードは機能します。

String string = "Hai,Hello,How,are,"; 
String[] bits = string.split(",", -1); 
 ↓ 
bits[]…{ "Hai","Hello","How","are","" } 
bits[bits.length-2]…"are" 
関連する問題