例如,如果我有字符串“GCG”,我想插入一个 每次“G”匹配时“C”,每次“C”匹配时“G”,使其成为GCCGGC。
到目前为止,我有以下内容,但它会打印GCGCGC。
function pairElement(str) {
for(i = 0; i < str.length; i++) {
if(str[i] == "G") {
return str.replace(/([GC+/])/g, "GC");
} else if (str[i] == "C") {
return str.replace(/([?=CG+/])/g, "CG");
}
}
}
pairElement("GCG");
编辑:我认为只有第一个if语句正在执行而没有运行else if。有没有其他方法可以用来搜索不同的字母,而不仅仅是一个,并根据搜索字母的内容插入另一个字母?
答案 0 :(得分:0)
你可以做到
void Close_Tapped(object sender, System.EventArgs e)
{
throw new NotImplementedException();
}
答案 1 :(得分:0)
您可以使用string
将array
转换为split
,然后遍历数组并替换每个字符。
然后,您可以使用join
将数组转换为字符串。
var string = 'GCG';
var str = string.split('').map(c => {
if(c === 'G') c = 'GC';
else if (c === 'C') c = 'CG';
return c;
}).join('');
console.log('String ' + string);
console.log('New String ' + str);
&#13;
答案 2 :(得分:0)
您没有使用递归。一旦它命中return语句,控件退出。更好的方法是使用正则表达式作为建议的答案之一,但如果您只想在自己的代码中进行微小的修改,可以尝试这样的事情。
function pairElement(str) {
var newStr= ""; // using new string to make it more readible
for(i = 0; i < str.length; i++) {
if(str[i] == "G") {
newStr = newStr + str[i] + "C";
} else if (str[i] == "C") {
newStr = newStr + str[i] + "G";
} else {
newStr = newStr + str[i]; //you didn't specify what do you want to do in this case
}
}
return newStr;
}
pairElement("GCG");