【发布时间】:2014-03-04 02:29:49
【问题描述】:
标题说明了一切,我开发了这种搜索矩阵“矩阵”并从中心到最右上角的对角线方法。我也有从中心到左边的另一组。我现在有一个问题,我将如何让它反转,不是从底部开始,而是从“C”开始,一直到“G”并继续向左移动。
它所要做的就是逆转,但我已经尝试了大约 2 个小时,但仍然无济于事。这实际上是我正在进行的项目的最后一部分,如果有人可以帮助翻转,那就太棒了。
这是代码,为了节省空间,我取出了很大一部分。
public class Word {
public static int curCol = 10;
public static int curRow = 10;
public static String[][] matrix = {{"A","B","C"},
{"D","E","F"},
{"G","H","I"}};
private static void searchDiagonalCenterToRight(String word) {//Center to bottom Righ t. Diagnol Works, debug to go along column is needed
int rowOn = 0;
int colOn = 0;
int resetableCol = curCol;
resetableCol--;//Just resets everything then starts again.
int decreaser = curCol;//What to decrease by everytime it runs 10,9,8,7 all the way to 1
int resetableDec = decreaser;
resetableDec--;
char c;
String toFind = word.toUpperCase();
String developingInverse = "";
int integer = 0;
for(int row = 0; row < curRow; row++)//Matrices Row
{
for(int i = 0; i <= resetableDec; i++)
{
String developingWord = "";
integer = i;
for(int j = integer; j <= resetableDec; j++,integer++)
{
c = matrix[j][integer+row].charAt(0);//Sets to whatever letter it is on
char uC = Character.toUpperCase(c);
developingWord = developingWord + "" +uC;
System.out.println("On Row: " + row + " Started From: " + integer + " Now On: " + j);
System.out.println("Processing Letter: " + matrix[j][integer] + " Adding Letter To: " + developingWord);
}
}
resetableDec--;
}
System.out.println("\nNo Matching Word Was Found, Center To Left.");
}
}
【问题讨论】:
-
我没有得到你想要达到的目标。所以,如果这不是你想要的,请告诉我。先说说我的理解吧。现在您正在访问位置 (0,0) (1,1) (2,2) 等的元素,即对角线元素。并且您想访问 (0,2) (1,2) (2,0) 定位元素。即另一个对角线。这是你想要的吗?
-
运行你的程序时出现索引超出范围异常
-
基本上你明白了,索引也来自整数的非调整,因为它在移动列时从 3 变为 2。我所需要的只是从最初的 AEI 然后 BF 然后 C(忽略 A、AE、AEI)到我现在正在尝试的工作,即 CEG 然后 BD 然后 A
-
我应该说的第一条评论有误 (0,2) (1,1) (2,0)