我有一个2维的String数组,我试图找出它们之间是否有共同的元素以及该元素是什么。它应该查看(0,0)中的元素,并将其与(1,0),(1,1),(1,2)中的元素进行比较,依此类推。我试图使用嵌套for循环,但我似乎无法正确。有人能告诉我我的代码有什么问题以及我应该如何修复它?
for(int i = 0; i < times.length; i++ ){
for(int j = 0; j < times[i].length; j++ ){
if(i+1 < times.length)
if(times[i][j].equals(times[i+1][j])){
System.out.println(times[i][j + " = " + times[i+1][j])
}
}
}
答案 0 :(得分:0)
你想要这样的东西:
String[][] times = new String[][] {
{ "aaa", "bbb", "ccc" },
{ "bbb", "dfdf", "ddd" },
{ "dfdfff", "ddd" }
};
for (int i = 0; i < times.length - 1; i++)
{
for (int j = 0; j < times[i].length; j++)
{
String currStringPrevRow = times[i][j];
String [] nextRow = times[i + 1];
for (String s : nextRow)
{
if (s.equals(currStringPrevRow))
{
System.out.println(s + " in row [" + i + "] is equal to " + s + " is row " + (i+1));
}
}
}
}
答案 1 :(得分:0)
我会尽量保持直观和易于理解。第一行的边界是[0,times.length - 2]。这样,第二行的边界将是[1,times.length - 1]。 对于第一行中的每个元素,我将检查第二行中的每个元素。以下代码演示了这一点。
for(int row = 0 ; row < times.length - 1 ; row++) {
for(int colFirst = 0 ; colFirst < times(row).length ; colFirst++) {
for(int colSecond = 0 ; colSecond < times(row + 1).length ; colSecond++) {
if(times[row][colFirst].equals(times[row+1][colSecond]))
System.out.println(times[i][j + " = " + times[i+1][j]);
}
}
}