给定一个String,返回一个char值数组,该数组以相反的顺序包含该字符串的字符

时间:2018-11-22 01:38:10

标签: java arrays string loops char

从标题中可以看到我正在尝试执行的操作,但是它不起作用,我不确定为什么。谁有任何想法或更简单的方法来执行此方法? (不使用字符串生成器和所有其他多余的东西)

public char[] reverseStringToArray(String str)
{

   char[] reverseStringToArray  = str.toCharArray();

   char[] characters = new char[reverseStringToArray.length];

   for (int i = reverseStringToArray.length - 1; i >= 0; i--)

       characters[i] = reverseStringToArray[i];

   return reverseStringToArray;
}

1 个答案:

答案 0 :(得分:2)

StringBuilder有一个有用的方法reverse(),您可以使用该方法然后将其转换为char[]。喜欢,

return new StringBuilder(str).reverse().toString().toCharArray();

如果您必须在这里实现自己的数组反转,那么重要的是要知道不要反转超出中间标记的元素(为什么?,因为您将反转它们然后将它们反转)。请注意,您还需要执行完全交换,否则您将损失一半的输入。也就是说,它看起来应该像

char[] rsa = str.toCharArray();
for (int i = 0; i < rsa.length / 2; i++) {
    char ch = rsa[i];
    rsa[i] = rsa[rsa.length - i - 1];
    rsa[rsa.length - i - 1] = ch;
}
return rsa;