2016-09-25 8 views
0

forループを作成して、リスト内の各文字列オブジェクトに文字を追加したいとします。私は実際のリストではなく、リスト内のオブジェクトをどのように編集するか分かりません。静的配列の文字列オブジェクトを変更する

私は

..私のリスト内の各オブジェクトの最後に「INGの」を追加したい場合は、それは単純なものだと同様に、たとえば、私が感じるが、私は永遠に神託を見てきたし、いません誰かが私を正しい方向に向けることができたら、それを理解することができましたか?

私は実際にはどのような種類のリストを使っても問題ありません。

私は

String[] stringArray = tools.toArray(new String[0]); 
      for (int i = 0; i < stringArray.length; i++) 
      { 
       stringArray[i] = stringArray[i].*part that would modify would go here* 
      } 
+1

文字列を変更できないため、他の種類のオブジェクトや変更リストを使用する必要があります。 – TomekK

+0

更新された回答。 – donkon

答えて

0

文字列はJavaで不変である、のようなものを考えていました。一度作成すると変更することはできません。

ここにはいくつかのオプションがあるようです。リスト内の各文字列の末尾に'ing'を追加して、リストを取得して新しいリストを返すメソッドを作成できます。

また、元のリストへの参照を保持する必要がある場合は、リストの内容をループし(ArrayList?)、各文字列をポップアウトして、新しい文字列を追加して'ing'とし、リスト。

1

Stringは編集できません。彼らは不変です。ただし、リスト内のエントリを置き換えることができます。あなたは、静的な配列を指定するためにあなたの質問を更新し

ArrayList<String> list = new ArrayList<>(); 
list.add("load"); 
list.add("pull"); 

for (int i = 0; i < list.size(); ++i) { 
    list.set(i, list.get(i) + "ing"); 

stringArray[i] = stringArray[i] + "ing"; 

割り当ての右側には、Javaで+オペレータで行うことができます文字列concatenationを行っています。あなたは、この目的のためのStringBuilderを使用することができます

List<String> list = new ArrayList<>(); 
list.add("testing"); 
for(String s:list){ 
    s=s+"ing"; 
} 
+0

私はstringArray [i] = stringArray [i] + "ing"と思っています。古い参照を、連結のために作成された新しいStringの1つに自動的に置き換えます。 – Tokazio

0

何か。

public static void addIng(String[] arr) { 
    StringBuilder sb = new StringBuilder(); 
    for (int i = 0; i < arr.length; i++) { 
     sb.setLength(0); 
     sb.append(arr[i] + "ing"); 
     arr[i] = sb.toString(); 
    } 
} 
0

以下のサンプルをご覧ください。

//Java 8 code. 
    List<String> oldList = Arrays.asList("a", "b"); 
    List<String> newList = oldList.stream().map(str -> new StringBuilder(str).append("ing").toString()).collect(Collectors.toList()); 
    System.out.println(oldList); // [a, b] 
    System.out.println(newList); // [aing, bing] 

    // Java 7 or below. 
    List<String> oldList = Arrays.asList("a", "b"); 
    List<String> newList = new LinkedList<String>(); 
    for (String str : oldList) { 
     newList.add(new StringBuilder(str).append("ing").toString()); 
    } 
    System.out.println(oldList); // [a, b] 
    System.out.println(newList); // [aing, bing] 
関連する問題