如何在java中使用循环来反转String Array

时间:2018-02-19 11:01:46

标签: java arrays string

我想通过在Java中使用for循环编写程序来反转String Array,不建议任何方法stringBuffer或StringBuilder,甚至不建议使用字符串而不是字符串数组。

下面是我的代码,这里我收到一个错误,即无法在数组类型String []上调用charAt(int)。

package demo;

public class ReverseString1 {
    String[] x={"Welcome"};
    String y;
    int i,j;

    void reverse1(){
        for(int i = x.length - 1; i >= 0; i--) {
            y = y + x.charAt(i);
            System.out.print(y);
        }
    }

    public static void main(String[] args) {
        ReverseString1 obj = new ReverseString1();
        obj.reverse1();
    }
}

3 个答案:

答案 0 :(得分:0)

在您的代码中,x是一个数组。数组没有charAt()方法,因此出错。

也许你打算写:

void reverse1(){
    for(int i = x[0].length()-1; i >= 0; i--){
        y=y + x[0].charAt(i);
        System.out.print(y);
    }
}

请注意,我已经更改了for循环语句,因此它会在索引0处迭代字符串,而不是数组。

或许你想要一个char[]而不是String[]? 然后你的代码看起来像这样:

char[] x = new char[] {'W', 'e', 'l', 'c', 'o', 'm', 'e'};

void reverse1(){
    for(int i = x.length-1; i >= 0; i--){
        y=y + x[i];
        System.out.print(y);
    }
}

此外,您可能希望在循环之外打印y

答案 1 :(得分:0)

int i,j;

void reverse1(){

for(int i = x.length-1; i >= 0; i--){
   y = "";
   for(int j = x[i].length-1; j >= 0; j--){
       y=y + x[i].charAt(j);
   }
   System.out.print(y);
}

}

答案 2 :(得分:0)

这是您可以撤消:before

的方法
String

现在,让我们反转String reverse(String input) { //input is a String for (int i = 0; i < input.length() / 2; i++) { char aux = input.charAt(i); input.setCharAt(i, input.charAt(input.length - 1 - i)); input.setCharAt(input.length - 1 - i, aux); } } 数组的所有项目:

String

请注意,将结果与计算混合打印是不可行的。我给你的方式可以进行计算,因为我观察到你已经知道如何打印结果。您遇到的有效问题是String[] reverse(String[] input) { for (int i = 0; i < input.length; i++) { input[i] = reverse(input[i]); } } 是一个x数组,您需要对其进行迭代以获取其String项。对于您的代码,它将导致

String