我有MediaPlayer mp = MediaPlayer.create(getActivity(), Uri.parse(soundUrl));
//mp.prepare() is not needed here
mp.setLooping(false);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
Log.i(LOGTAG, "onComplete hit");
mp.stop();
mp.release();
}
});
。例如,它可能看起来像:
String[][] field
行数和列数相等,但每次数字可能不同。我需要检查整行或整列的元素值是否相等。
我已经为3x3 [xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
[xy] [xy] [xy] [xy] [xy]
写了一些错误的代码来检查行,这里是:
field
但这不是检查行的通用方法,因为我们可能有不同大小的矩阵(并且需要添加public boolean checkHorizontal(String[][] field) {
boolean value = false;
int x = 0;
for (int i = 0; i < field.length; i++) {
if (field[i][x].equals(field[i][x + 1]) &&
field[i][x + 1].equals(field[i][x + 2]) &&
!field[i][x].equals("[something]")) {
value = true;
}
}
return value;
}
,x + 3
,x + 4
等)
有没有有效的方法来比较2D数组的整行/列?
答案 0 :(得分:3)
检查所有行:
for(int i = 0; i < field.length; i++){
for(int j = 1; j < field[i].length; j++){
if(!field[i][0].equals(field[i][j])){
return false;
}
}
}
return true;
答案 1 :(得分:0)
@quidproquo的答案实际上检查所有字段是否相等,但是很容易使解决方案适应单个行或列:
public boolean isEqual(String[][] data, int rowColumn, boolean row){
int i = 1;
int limit = (row) ? data[0].length : data.length;
while(i<limit){
if ((row) ? !data[rowColumn][i].equals(data[rowColumn][0])
: !data[i][rowColumn].equals(data[0][rowColumn]))
return false;
}
return true;
}