关闭char-in字符串的一个错误

时间:2014-04-17 17:54:40

标签: java string char off-by-one

这个方法应该接受一个字符串并输出字符串作为字符,但它应该是大小的两倍。示例:字符串为“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;

2 个答案:

答案 0 :(得分:4)

您的复制逻辑不正确。您需要将索引i中的字母复制到索引2*i2*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)

每次循环增加两次。