修改静态数组中的String对象

时间:2016-09-25 23:14:50

标签: java arrays string list object

我想创建一个for循环,为列表中的每个字符串对象添加一个字母。我只是不确定如何编辑列表中的对象而不是实际列表。

例如,如果我想在列表中的每个对象的末尾添加“ing”..

我觉得这很简单,但是我一直在寻找oracle,并且如果有人能指出我正确的方向,那我就无法弄明白了吗?

我可以使用任何类型的列表..只是任何有用的东西。

我在想类似的东西,

    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*
            }

5 个答案:

答案 0 :(得分: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";

赋值的右侧是执行字符串concatenation,可以使用Java中的+运算符来完成。

答案 1 :(得分:1)

您可以将StringBuilder用于此目的。

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();
    }
}

答案 2 :(得分:0)

字符串在java中是不可变的;一旦创建,它们就无法修改。

这里看起来你有几个选择;您可以通过将'ing'附加到列表中每个字符串的末尾来创建一个获取列表并返回新列表的方法。

或者,如果你需要保留对原始列表的引用,你可以循环遍历列表的内容(ArrayList?)并弹出每个字符串,创建一个带有附加'ing'的新字符串,并且在列表中替换。

答案 3 :(得分:0)

这样的东西
List<String> list = new ArrayList<>();
list.add("testing");
for(String s:list){
    s=s+"ing";
}

答案 4 :(得分: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]