为什么我的 "string mingling" 方法会产生 return 意外结果?
Why does my "string mingling" method return unexpected results?
我正在尝试实现一个简单的 "string mingling" 方法,它以递归方式混合两个大小相等的字符串(例如,cat 和 dog 变成 cdaotg —— 字符串 1 的第一个字母,字符串 2 的第一个字母,以及很快)。
我的方法如下:
string mingleStrings(string s1, string s2, int index) {
if (index >= s1.length()) {
return "";
} else {
string mingled = "";
mingled += s1[index] + s2[index];
mingled += mingleStrings(s1,s2,++index);
return mingled;
}
}
当我在我的字符串 (s1[index]) 上使用下标运算符时,它 returns 整个字符串直到该索引。要在某个索引处获取字符串的特定字符,我需要键入 s1[index,index]。这对我来说是新的。
您的代码问题出在这一行:
mingled += s1[index] + s2[index];
这样做是在 index
处添加 代码 个字符,然后将添加的结果作为单个字符附加到您的字符串中。
应该是两个独立的操作:
mingled += s1[index];
mingled += s2[index];
通过这种方式,您每次调用 +=
时都会向字符串附加一个字符,从而产生您期望的结果。
我正在尝试实现一个简单的 "string mingling" 方法,它以递归方式混合两个大小相等的字符串(例如,cat 和 dog 变成 cdaotg —— 字符串 1 的第一个字母,字符串 2 的第一个字母,以及很快)。
我的方法如下:
string mingleStrings(string s1, string s2, int index) {
if (index >= s1.length()) {
return "";
} else {
string mingled = "";
mingled += s1[index] + s2[index];
mingled += mingleStrings(s1,s2,++index);
return mingled;
}
}
当我在我的字符串 (s1[index]) 上使用下标运算符时,它 returns 整个字符串直到该索引。要在某个索引处获取字符串的特定字符,我需要键入 s1[index,index]。这对我来说是新的。
您的代码问题出在这一行:
mingled += s1[index] + s2[index];
这样做是在 index
处添加 代码 个字符,然后将添加的结果作为单个字符附加到您的字符串中。
应该是两个独立的操作:
mingled += s1[index];
mingled += s2[index];
通过这种方式,您每次调用 +=
时都会向字符串附加一个字符,从而产生您期望的结果。