2015-02-08 30 views
1
list2.get(i).replace(list2.get(i).charAt(4), list3.get(i)); 

list2是字符串数组列表替换字符串数组列表的每个元素的第四个字符,例如[00110001, 11111111, 00000000, 01001010, 00000000]我想与另一个字符

我要替换在list2中每个元件的第四字符,在更换 字符存储在list3所以它将包含[1, 0, 1, 1, 1]

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

+0

改变'11111111'成'11110111'意味着你要翻转'5th'字符(索引4从0开始计数)。请[编辑]您的问题并更正此信息。还包括你的代码尝试解决这个问题。堆栈溢出不是代码工厂,而是解决问题的助手。 – Pshemo 2015-02-08 15:47:30

+2

问题是什么? – 2015-02-08 15:48:10

回答

0

你可以做到这一点是这样的:

  • 在列表2
  • 定义一个计数器变量是在项目list3元素的索引开始为0
  • 遍历每个元素删除由给定的字符串迭代器并将其转换为charArray使用字符串上的toCharArray api
  • 现在使用计数器指向的list3的元素使用char数组中的第4个索引更改该位。
  • 将char数组转换回String(使用String(char [])构造函数)并将其添加到列表2中。
  • 递增计数器。
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); 
相关问题