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