请在面试时找到最常见的java问题,即"编程以在不使用内置函数的情况下反转字符串数组"
package program;
public class StringReverse {
String[] input={"Welcome"};
int i;
char rev11[];
void ReversStr(){
char rev11[] = input[i].toCharArray();//since we know that we cant traversed String Array ,hence we have to change String array into Char array
System.out.println("Array after reverse:");
for (int i = rev11.length-1; i>=0; i--)
System.out.print(rev11[i]);
}
public static void main(String[] args) {
StringReverse obj=new StringReverse();
obj.ReversStr();
}
}
答案 0 :(得分:0)
首先:可能需要新的反转阵列。
因为这种逆转有一两个陷阱:
void reverse(String[] a) {
for (int i = 0; i < a.length / 2; ++i) {
int complementaryI = a.length - 1 - i;
String temp = a[i];
a[i] = a[complementaryI];
a[complementaryI] = temp;
}
}
初学者的错误为i < a.length
。
如果不是原位反转,但需要新的数组,但必须更改相同的代码,必须复制奇数长度数组的中间元素,或循环到a.length
。