我在這裏有4x4字符數組,我需要獲得數組邊緣的字符的公共值......我嘗試瞭解決方案類似我的問題其他問題,但我仍然得到同樣的錯誤,獲取二維數組的邊緣值,同時防止越界
這裏是我的代碼..
//arr2[][]
// arr2[3][0] = 'H';
// arr2[3][1] = 'E';
// arr2[3][2] = 'L';
// arr2[3][3] = 'P';
//arr3[][]
// arr3[1][3] = 'T';
// arr3[2][3] = 'O';
// arr3[3][3] = 'P';
//I specifically need the get the 'P' at [3][3]..
for(o = 0;o<count;o++){
char letter = out.charAt(o);
for(int m = 0; m < 4; m ++){
for(int n = 0; n < 4; n ++){
if(Arrays.asList(arr3[m][n]).contains(letter)){
r = m;
c = n;
}
}
}
right = arr2[r][c+1];
left = arr2[r][c-1];
up = arr2[r-1][c];
down = arr2[r+1][c];
if(o==0){
if(c==0){
if(r==0||r==3){
if(right!=null){
l = right;
}
}else{
if(right!=null){
l = right;
}else if(up!=null){
l = up;
}
}
}else if(c==3){
if(r==0||r==3){
if(left!=null){
l = left;
}
}else{
if(left!=null){
l = left;
}else if(up!=null){
l = up;
}
}
}else{
if(r==0||r==3){
if(left!=null){
l = left;
}else if(right!=null){
l = right;
}
}else{
if(left!=null){
l = left;
}else if(right!=null){
l = right;
}else if(up!=null){
l = up;
}
}
}
}
}else if(o==(count-1)){
if(vertical == 1){
if(c==0){
if(r==0||r==3){
if(right!=null){
l = right;
}
}else{
if(right!=null){
l = right;
}else if(down!=null){
l = down;
}
}
}else if(c==3){
if(r==0||r==3){
if(left!=null){
l = left;
}
}else{
if(left!=null){
l = left;
}else if(down!=null){
l = down;
}
}
}else{
if(r==0||r==3){
if(left!=null){
l = left;
}else if(right!=null){
l = right;
}
}else{
if(left!=null){
l = left;
}else if(right!=null){
l = right;
}else if(down!=null){
l = down;
}
}
}
}
}else{
if(vertical == 1){
if(c==0){
if(right!=null){
l = right;
}
}else if(c==3){
if(left!=null){
l = left;
}
}else{
if(right!=null){
l = right;
}else if(left!=null){
l = left;
}
}
}
}
k = Character.toString(letter);
letr = Character.toString(l);
爲什麼你寫'if(Arrays.asList(arr3 [m] [n])。contains(letter)){'而不是'if(arr3 [m] [n] == letter){'?? – jlordo 2013-02-21 14:45:45
@jlordo我在這個之上有其他程序,我創建了一個字符串從arr3這是TOP的值..我想知道每個字符的位置和做的方法是檢查它是否包含在arr3 [m] [n] ... – kathy 2013-02-21 14:51:48
我想你沒有得到任何支持,因爲你的代碼太複雜了。許多'if','else if'和'else'的情況,帶有單個字母的變量名稱。你說'//我特別需要在[3] [3]處得到'P'..'這可以通過單線'arr3 [3] [3]'完成。我不明白你的代碼,既不是你的問題。至於我以前的評論,兩個條件是相同的,而我的閱讀理解(更高效)容易,而你的過於複雜。 – jlordo 2013-02-21 14:56:45