我有一个2d String数组。我该怎么检查一片呢?例如第3行,最多第6个元素
我试过了
String arr[][] = new String[3][6]
arr[3][4] = "example"
if (Arrays.asList(arr).subList(3,6).contains("example"))
System.out.print("yes");
但这不起作用。它只适用于1d阵列?另外,如何使用contains来检查切片数组中的所有元素是否为空?
答案 0 :(得分:1)
首先,数组在Java中是零索引的,因此如果您声明具有第一维3
的数组,则最大索引为2
。
其次,如果要查看第三行的切片,则应在转换为列表之前明确指定索引2
。
import java.util.*;
public class ArrayGame {
public static void main(String[] args) {
String arr[][] = new String[3][6];
arr[2][4] = "example";
if (Arrays.asList(arr[2]).subList(3,6).contains("example"))
System.out.println("yes");
}
}
输出:
yes
答案 1 :(得分:0)
查看javadoc数组:
Arrays.copyOfRange(T[] original, int from, int to)
,其中
例如,原文是arr [3]
来自0
到7
http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#copyOfRange%28T[],%20int,%20int%29
答案 2 :(得分:0)
目前的做法是:
if (Arrays.asList(arr[3]).contains("example"))
System.out.print("yes");
祝你好运!
答案 3 :(得分:0)
您声明String arr[][] = new String[3][6]
,这意味着只有3行6列结构。
可以指定值,在本例中为行
arr[0][...] = <assigned-value>
//第1行arr[1][...] = <assigned-value>
//第2行arr[2][...] = <assigned-value>
//第3行但它不会按预期工作
arr[3][4] = "example"
//第4行,此处投掷ArrayIndexOutOfBoundsException