这个方法应该接受一个字符串并输出字符串作为字符,但它应该是大小的两倍。示例:字符串为“PaRty” 返回应该是'P','P','a','a','R','R','t','t','Y','Y'
对于我的代码,当我运行测试时,它表示数组在元素[]上不同;预期:但是:
我无法弄清楚是不是错了,希望有人可以帮我指出一些事情让我明白并让这项工作取悦吗?如果我一个人请你解释一下吗?
//Implementing the second method: toExpandedArray, which works with
//a string and then returns chars of that string.
public static char[] toExpandedArray(String string)
{
//Initializing variable needed to char the string
char[] charArray = new char[string.length() * 2];
//The loop that will turn the string into characters.
for (int i = 0; i < string.length(); i++)
{
charArray[i] = string.charAt(i) ;
charArray[i+1] = charArray[i];
i++;
}
//Returning the characters as an array.
return charArray;
答案 0 :(得分:4)
您的复制逻辑不正确。您需要将索引i
中的字母复制到索引2*i
和2*i + 1
。最后i++
是不必要的;它已经在for
循环中完成了。变化
charArray[i] = string.charAt(i);
charArray[i+1] = charArray[i];
i++;
到
charArray[2*i] = string.charAt(i);
charArray[2*i+1] = string.charAt(i);
答案 1 :(得分:0)
string.charAt(i)
不正确,应该是
string.charAt(i/2)
每次循环增加两次。