我有一种方法应该编写2D int数组(如矩阵)并添加?在特定位置上(您可以获取该位置的尺寸作为参数)。
是的,我写int是因为在值为0的情况下,我应该写A,在值为1 B的情况下,等等……
示例:
A B C
B A? A
它们之间应为\ t,但不应位于行中的第一个元素之前,也不应位于最后一个元素之后。 最简单的方法是什么?我知道如果编写多个If ... if else条件,我可以得到此信息,但我想知道是否有较短的代码。
答案 0 :(得分:1)
如果我正确理解了您的问题,则您有一个2D数组,并且获得了一些int值,在打印时应将其替换为字符。
您可以采取的解决方案之一是使用开关盒来创建另一个功能,如下所示:
<input type="text" class="gold" name="second" id="second" placeholder="<?PHP echo $rate_1;>"style="width:150px;text-align: right;"onchange="multiply(this)">
然后在打印时调用此函数:
private String charOf(int x, int colIndex, int maxCols){
Char char = '';
switch(int){
case 1:
char = 'A';
break;
case 2:
char = 'B';
break;
....... etc
}
return (colIndex < maxCols-1 ? char+"\t" : char);
}
对于问号,我认为内部循环中的一个if语句可以做到这一点,或者您可以在一行中使用它:
print (charOf(arr[i][j]);
假定x和y是您用来指定要在旁边打印问号的元素的两个参数。
答案 1 :(得分:1)
初始化数组后 例如
int[][] array = new int[2][3];
array[0][0] = 1;
array[0][1] = 2;
array[0][2] = 3;
array[1][0] = 1;
array[1][1] = 4;
array[1][2] = 5;
您可以使用ASCII码
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
int myasci = 65 + array[i][j];
String MyChar = (char) myasci+"";
if(/* Your ? conditon */){
MyChar = MyChar+"?";
}
System.out.print(MyChar+'\t');
}
System.out.println();
}
大写字母的ASCII码从65表示'A'开始66表示'B' 因此您可以将int的值添加到65以获取数字的Ascii代码,例如,当int为0时,它将是65 + 0 = 65,这是'A'ASCII代码