[英]Replace strings populated in an ArrayList<String> with other values
我目前在一个项目中,需要检查某个特定字符串的arraylist,如果满足该条件,请用新字符串替换它。 我将仅显示相关代码,但基本上是在读取长字符串之前发生的事情,将其分成三组,然后这些字符串填充一个数组。 我需要在数组中查找并替换这些值,然后将它们打印出来。 这是填充arraylist的方法:
private static ArrayList<String> splitText(String text)
{
ArrayList<String> DNAsplit = new ArrayList<String>();
for (int i = 0; i < text.length(); i += 3)
{
DNAsplit.add(text.substring(i, Math.min(i + 3, text.length())));
}
return DNAsplit;
}
我将如何在该aminoAcids = aminoAcids.replaceAll ("TAT", "Y");
搜索多个字符串(下面是一个示例aminoAcids = aminoAcids.replaceAll ("TAT", "Y");
),然后打印出新值。 任何帮助是极大的赞赏。
在Java 8中
list.replaceAll(s-> s.replace("TAT", "Y"));
列表上没有这样的“全部替换”方法。 您需要逐个元素地应用替换; 与在单个字符串上执行此操作的唯一区别在于,您需要将值从列表中取出,然后将新值重新设置到列表中:
ListIterator<String> it = DNAsplit.listIterator();
while (it.hasNext()) {
// Get from the list.
String current = it.next();
// Apply the transformation.
String newValue = current.replace("TAT", "Y");
// Set back into the list.
it.set(newValue);
}
如果要打印出新值:
System.out.println(DNAsplit);
为什么不创建一个具有键值的哈希表,并在加载期间使用它来填充此列表,而不是稍后对其进行修改?
Map<String,String> dnaMap = new HashMap<String,String>() ;
dnaMap.push("X","XXX");
.
.
.
dnaMap.push("Z","ZZZ");
并使用如下所示:
//Use the hash map to lookup the temp key
temp= text.substring(i, Math.min(i + 3, text.length()));
DNAsplit.add(dnaMap.get(temp));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.