java - 反转二维数组中字符串的顺序 - 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);
}
}
解决方案
将Java中的二维数组视为由行和列组成的矩阵。为了找出有多少行arr
,请使用以下代码。
arr.length
你会发现这将返回 4。
要获取 中的第一行arr
,请使用以下代码。
arr[0]
同样,要获取第二行,请使用以下代码。
arr[1]
尽管在您问题的代码中,每一行都有一列,但每一行可能有不同数量的列。
要获取第一行的列数,代码是
arr[0].length
要在二维数组中获取单个元素,您需要按此顺序同时使用行索引和列索引。因此,要获取第一行第一列中的元素,请使用以下命令
arr[0][0]
由于第一行只有一列,因此以下将导致 aArrayIndexOutOfBoundsException
被抛出。
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
推荐阅读
- c# - MVC 文本框绑定多个属性
- reactjs - 是否可以使用 useSWR 在 nextJS 中发送页面 ID,以便我可以根据我所在页面的 ID 获取数据
- powershell - PowerShell 大于也包括等于的项目
- c# - 解决C#中点击网页浏览器按钮的问题
- reactjs - react-router 中的 2 级嵌套路由无法正确路由第一级
- flutter - Flutter:如何让页面等到数据加载?
- python - 处理特定的命名数据集列
- python - 阅读邮件时如何处理错误
- github - 使用 GKE 创建 Jenkins X Kubernetes 集群会引发异常:找不到秘密“jenkins”
- python - 用数组格式化和求和数字