2017-01-10 9 views
-7

私は文字列のarraylistを持っている、私は同じarraylistの項目の中で部分文字列を見つける必要がありますか?例えばjavaのarraylistで部分文字列を取得する方法

ここ
ArrayList<String> ar = new ArrayList(); 
ar.add("UserId"); //adding item to arraylist 
ar.add("Directory"); 
ar.add("Username"); 
ar.add("PhoneNumber"); 

私は基本的に私は、リストの項目からユーザーIDとユーザー名として出力を必要とする、項目の部分文字列を検索します。どうすれば誰かが私を助けることができます。

+0

ここで何を達成しようとしているのか分かりませんが、arraylistやフィルタでforeachを使うことができますので、必要なものだけを持っています –

+0

@Rampraksh:私のarraylistは、それらの間で部分文字列を見つける必要があります。 – sharan

答えて

2

次の2つのアプローチがあります:あなたは要素(例えば、いくつかの「ユーザーID」の要素)を繰り返している場合は、たとえば、グアバmutiset

のために、バッグ(重複elemetsとのセット)をサポートし、コレクションを使用することができます

ArrayList<String> ar = new ArrayList(); 
    ar.add("UserId"); //adding item to arraylist 
    ar.add("Directory"); 
    ar.add("Username"); 
    ar.add("PhoneNumber"); 

    // approach one using iteration 
    for (Iterator<String> it = ar.iterator(); it.hasNext();) { 
     String f = it.next(); 
     if (f.equals("UserId")) 
      System.out.println("UserId found"); 
    } 

    // approach two using a colletion which supports fetching element by key 
    Map<String,String> myMap=new HashMap<>(); 
    for(String strg:ar){ 
     myMap.put(str,str); 
    } 

    String result=myMap.get("UserId"); 

+0

2番目のaproachでは、未定義の変数である 'str、str'をマップに入れます。また、マップのポイントは何ですか?なぜ同じオブジェクトをキーと値として入れ、それを使って自分自身を捜索するのですか?私は混乱しています... –

+0

@fillpant私たちは名前で要素を取り出す機能を私たちに提供するコレクションを必要としています。そのような機能を提供していないので、マップなどの他のものを使用しなければなりません –

+0

そのトリックを行うかもしれない 'indexOf(Object value)'と 'contains(Object value)'ですが、それでも同じキーで値を入力してそれを取得するという点はありませんか? Map.put( "Hello"、 "Hello") 'のようにマップ内に置くポイントとは何か、' 'Hello" 'などの文字列を持っていれば' map.get( "Hello") '' Hello "を返しますか? :S curiocity xDのために主に尋ねる –

関連する問題