2011-07-25 5 views
0

サブ文字列を見つけるのにindexof()を使用しています。私の文字列が最初の位置にない場合、文字列が最初の位置にあれば文字列が見つかります。誰かがそれを見つける別の方法を提案することはできますか?JavaでIndexof()メソッドを使用する方法

public class IndexOfStr { 


    public static void main(String args[]) { 
    String s = "Niraj"; 
    System.out.println(s); 
    System.out.println("indexOf(niraj, 1) -> " + s.indexOf("niraj", 1)); 


}} 

出力: - - :

は、ここに私のコードで私は私のExcelファイル内の文字列を見つけるためにしようとしています

Niraj indexOf(niraj, 1) -> -1 

+2

s.indexOf( "nirajに")、それが正常に動作 –

答えて

4

文字列の最初の文字がインデックス0にある、ないインデックス1

ものindexOfは大文字と小文字が区別されることに注意してください。

Excelファイルのデータへのアクセス方法はわかりませんが、一致するものを検索するとすべてのデータを小文字に変換するか、検索時にregexpを使用して正規表現大文字小文字を区別しません。ドキュメントから

2

指定されたインデックスから始まる、 指定ストリングの最初の出現のこの文字列内のインデックスを返します。整数 が返される最小値kは、 k> = Math.min(fromIndex、this.length())& & this.startsWith(str、 k)このようなkの値が存在しない場合、-1返されます。

インデックス0ではなくインデックス1から開始したため、文字列が見つかりませんでした。

あなたは0ではなく1

s.indexOf("Niraj", 0); 

から開始し、indexOf()方法は、大文字と小文字が区別されることに注意してくださいする必要がありs.indexOf("niraj", 0)またはs.indexOf("niraj")

2

のいずれかを行うことができます。

0

ここで2つのエラーが発生します。
1)文字列が「Niraj」で、部分文字列「niraj」を探したいとします。したがって、あなたの部分文字列は指定された文字列に存在せず、-1を返します。
2)位置0ではなく位置1で検索を開始します。したがって、部分文字列は指定された範囲内にありません。 正しい部分文字列を入力するか、

s.toLowerCase()。のindexOf( "niraj"、0)

+0

感謝を呼び出すのどちらか。 –

+0

回答の1つに合格とマークする必要があります。 – Maggie

関連する問題