Java 字符字符串的关闭错误为1

Java 字符字符串的关闭错误为1,java,string,char,off-by-one,Java,String,Char,Off By One,这个方法应该接收一个字符串,并将字符串作为字符输出,但是它的大小应该是字符串的两倍。示例:字符串为“PaRty” 报税表应为“P”、“P”、“a”、“a”、“R”、“R”、“t”、“t”、“Y”、“Y” 对于我的代码,当我运行测试时,它说数组在元素[]处不同;预期:但是: 我不知道这是错的,希望有人能帮我指出一些东西,让我理解,并使这项工作请?如果我差一点请解释一下 //Implementing the second method: toExpandedArray, which works wi

这个方法应该接收一个字符串,并将字符串作为字符输出,但是它的大小应该是字符串的两倍。示例:字符串为“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;
//实现第二种方法:toExpandedArray,它与
//一个字符串,然后返回该字符串的字符。
public static char[]toExpandedArray(字符串)
{
//初始化字符串字符所需的变量
char[]charArray=new char[string.length()*2];
//将字符串转换为字符的循环。
对于(int i=0;i
您的复制逻辑不正确。您需要将字母从索引
i
复制到索引
2*i
2*i+1
。末尾的
i++
是不必要的;它已经在
for
循环中完成。更改

charArray[i] = string.charAt(i);
charArray[i+1] = charArray[i];
i++;


您的复制逻辑不正确。您需要将字母从索引
i
复制到索引
2*i
2*i+1
。末尾的
i++
是不必要的;它已经在
for
循环中完成。更改

charArray[i] = string.charAt(i);
charArray[i+1] = charArray[i];
i++;

是不正确的,应该是

string.charAt(i/2)
每个循环增加i两次

是不正确的,应该是

string.charAt(i/2)

每个循环增加i两次。

谢谢!之所以使用2*i,是因为前面的字符被初始化为string.length*2?这样
0
处的字符被复制到
0
1
1
处的字符被复制到
2
3
2
处的字符被复制到c点击
4
5
,依此类推。谢谢!之所以使用2*i是因为前面的字符被初始化为string.length*2?这样
0
处的字符被复制到
0
1
1
处的字符被复制到
2
3
处的字符2被复制到
4
5
,依此类推。