如何在不使用内置函数(如String Builder和String Buffer)的情况下反转String Array

时间:2018-02-21 08:43:15

标签: java arrays

请在面试时找到最常见的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();


}

}

1 个答案:

答案 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