我想用另一个字符替换字符串arraylist的每个元素的第四个字符

时间:2015-02-08 15:41:28

标签: java arraylist replace

list2.get(i).replace(list2.get(i).charAt(4), list3.get(i));

list2是字符串arraylist,例如[00110001, 11111111, 00000000, 01001010, 00000000]

我想替换list2中每个元素的第4个字符,即替换 list3中的字符存储,因此它将包含[1, 0, 1, 1, 1]

最后,我的arraylist list2应该看起来像[00111001, 11110111, 00001000, 01001010, 00001000]

2 个答案:

答案 0 :(得分:2)

首先,您必须注意String是不可变的。这意味着您无法通过在list2.get(i)上运行任何方法来执行此操作。所有字符串方法都返回新的字符串值,但不会更改原始字符串的值。

因此,您必须使用list2.set( i, newValue )将前一个字符串替换为您将构造的新字符串。

现在,你如何构建价值?你获取了不应该改变的字符串部分,并在它们之间粘贴新的字符值:

类似的东西:

String oldValue = list2.get(i);
String newValue = oldValue.substring(0,3) + list3.get(i) + oldValue.substring(5);

答案 1 :(得分:0)

你可以这样做:

  • 将计数器变量定义为list3中元素的索引,从0开始。
  • 迭代list2中的每个元素
  • 删除迭代器给出的字符串,并使用toCharArray api on String
  • 将其转换为charArray
  • 现在使用list3指向计数器的元素,使用char数组中的第4个索引更改位。
  • 将char数组转换回String(使用String(char [])构造函数)并将其添加到列表2中。
  • 递增计数器。