反转二维数组中字符串的顺序 - Java

我正在尝试颠倒数组中字符串的顺序。我收到错误:索引 3 超出长度 1 的范围。如果我使用数字而不是单词,这适用于 int。你能帮我吗?

public class Main {

    public static void main(String[] args) {
    // write your code here


        String [][] arr = {{"My"},{"name" },{"is"},{"John"}};

        String arr1 = arr[0][3];
        String arr2 = arr[0][2];
        String arr3 = arr[0][1];
        String arr4 = arr[0][0];
        String arrAll = arr1+arr2+arr3+arr4;
        System.out.println(arrAll);
    }
}
weika123456789 回答:反转二维数组中字符串的顺序 - Java

将一个二维数组想象成一个由行和列组成的矩阵。要找出 arr 中有多少行,请使用以下代码。

arr.length

你会发现这会返回 4。

要获取 arr 中的第一行,请使用以下代码。

arr[0]

同样,要获取第二行,请使用以下代码。

arr[1]

每一行可能有不同的列数,尽管在您问题的代码中,每一行都有一列。

获取第一行的列数,代码为

arr[0].length

要获取二维数组中的单个元素,您需要按此顺序获得行索引和列索引。因此,要获取第一行第一列中的元素,请使用以下内容

arr[0][0]

由于第一行只有一列,因此以下将导致抛出 ArrayIndexOutOfBoundsException

arr[0][1]

这解释了为什么 arr[0][3] 给您一个错误。您正在尝试访问第一行第四列中的元素,但第一行只有一列。

以下代码将提供您想要的结果。

String[][] arr = {{"My"},{"name" },{"is"},{"John"}};
int rows = arr.length;
System.out.println("rows = " + rows);
for (int i = 0; i < rows; i++) {
    System.out.println("row " + i + " columns = " + arr[i].length);
}

String arr1 = arr[3][0];
String arr2 = arr[2][0];
String arr3 = arr[1][0];
String arr4 = arr[0][0];
String arrAll = arr1+arr2+arr3+arr4;
System.out.println(arrAll);

运行上面的代码会产生以下结果。

rows = 4
row 0 columns = 1
row 1 columns = 1
row 2 columns = 1
row 3 columns = 1
JohnisnameMy
,

如果你想打印单词,你只需要:

public static void main(String[] args) {
// write your code here
String [][] arr = {{"My"},{"John"}};

    String [] arr1 = arr[3];
    String [] arr2 = arr[2];
    String [] arr3 = arr[1];
    String [] arr4 = arr[0];
    String arrAll = arr1[0]+arr2[0]+arr3[0]+arr4[0];
    System.out.println(arrAll);
}
,

你有一个字符串数组。 因此,当您访问 arr[0] 时,您正在访问字符串 {"My"} 的第一个数组。因此,arr[0][3] 尝试从字符串数组数组的第一行访问第三个元素,实际上并不存在,因为字符串数组只有一个元素 length 1,因此您正在获取 ArrayIndexOutOfBoundException

如果您想反转句子,则只能使用数组的第一个索引arr[0],arr[1],arr[2] & arr[3]

,

我相信您正在尝试选择每个内部数组的第一个元素。

因此,您提供的第一个索引必须是内部数组的索引。第二个必须是该内部数组中元素的索引。换句话说,它是 arr[innerArrayIndex][elementIndex] 并且由于所有内部数组都只有一个元素,因此第二个索引必须为零。

    String arr1 = arr[3][0];
    String arr2 = arr[2][0];
    String arr3 = arr[1][0];
    String arr4 = arr[0][0];
本文链接:https://www.f2er.com/1010.html

大家都在问