gpt4 book ai didi

java - 当字符位于数组的第二行时,为什么我的代码不起作用?

转载 作者:行者123 更新时间:2023-11-30 05:23:22 26 4
gpt4 key购买 nike

我有一些代码,其方法试图返回二维数组位置的相反字符标签。

假设数组及其每个位置的标签如下所示:

{{3,3,3,3}, {3,3,3,3}}
a,b,c,d e,f,g,h

如果输入 b,则返回 f。如果输入 a、b、c 或 d,它可以正常工作,但如果输入 e、f、g 或 h,它就不能正常工作,我不明白为什么。

public class ByteTest {

public static void main(String[] args) {
int[][] testArray = {{3,3,3,3}, {3,3,3,3}};
// a b c d e f g h
char slectdPit = 'e';
int total = (int)slectdPit;
int total97 = total - 97;
System.out.println(myGetOpposingPit(slectdPit, testArray));
}

public static char myGetOpposingPit(char b, int[][] ints) {
char retChar = 'z';
int retVal = 0;
int charPosi = 0;
int total97 = 0;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < ints[0].length; j++) {
charPosi = (int)b;
total97 = charPosi - 97;
if (total97 <= ints[0].length) {
if (total97 == j) {
retVal = (charPosi + ints[0].length);
retChar = (char)retVal;
}
}

else if (total97 > ints[0].length) {
if (total97 == (j + (ints[0].length))) {
retVal = (charPosi - ints[0].length);
retChar = (char)retVal;
}
}
}
}
return retChar;
}

}

我已经做了一个 if 语句

 else if (total97 > ints[0].length) {
if (total97 == (j + (ints[0].length))) {
retVal = (charPosi - ints[0].length);
retChar = (char)retVal;
}

这应该找到数组第二行中的标签,并将 returnedChar 分配为 characterPosition - 数组行长度,因此如果字符经过 myGetOpposingPit是g,那就是charPosi (103) minus ints[0].length (4), equaling 99 ,得到 ascii转换为“c”。

但不起作用,z被返回。所以我的 if 语句之一没有运行或者其他什么。

最佳答案

total97 == ints[0].length 时,您的逻辑似乎不正确。我更改了当它们相等时执行的分支:

public static char myGetOpposingPit(char b, int[][] ints) {
char retChar = 'z';
int retVal = 0;
int charPosi = 0;
int total97 = 0;

charPosi = (int)b;
total97 = charPosi - 97;

for (int i = 0; i < 2; i++) {

for (int j = 0; j < ints[0].length; j++) {

if (total97 < ints[0].length) {
if (total97 == j) {
retVal = (charPosi + ints[0].length);
retChar = (char)retVal;
}
} else if (total97 >= ints[0].length) {
if (total97 == (j + (ints[0].length))) {
retVal = (charPosi - ints[0].length);
retChar = (char)retVal;
}
}
}
}

return retChar;
}

我还将 total97 赋值移出了循环。它不会改变,因此不需要每次迭代都进行计算。

关于java - 当字符位于数组的第二行时,为什么我的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59149455/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com