【发布时间】:2014-04-22 21:58:25
【问题描述】:
我很困惑如何将二维字符数组中的值转换为数字(整数)。
假设数组是:[[a, b],[c, d],[e, f]] 或 {{'a','b'},{'c','d'},{'e','f'}}
该数组中的所有值都将转换为数字,a=0, b=1, c=2, d=3, e=4, f=5。
我希望得到如下结果:[[0, 1], [2, 3], [4, 5]] 或 {{0, 1},{2, 3},{4, 5}}
如果它只是一个“abcdef”字符串,我可以使用charAt(),但我不能在数组中使用它,尤其是在char数组中。所以,我使用 .replace。
package array_learning;
public class test {
public static void main(String[] args){
char [][] word= {{'a','b'},{'c','d'},{'e','f'}};
int strLength = word.length;
for(int i = 0; i<strLength; i++){
for(int j=0; j<2; j++){
String strWord = Character.toString(word[i][j]);
strWord = strWord.replace("a","0");
strWord = strWord.replace("b","1");
strWord = strWord.replace("c","2");
strWord = strWord.replace("d","3");
strWord = strWord.replace("e","4");
strWord = strWord.replace("f","5");
System.out.print(strWord+" ");
}
System.out.println();
}
}
}
但是,结果不是我所期望的。
结果:
0 1
2 3
4 5
如何以正确的方式解决这个问题?
【问题讨论】:
-
[[a, b],[c, d],[e, f]]是什么意思?这不是有效的 Java 语法。 -
您发布的预期结果和实际结果似乎一致。您的问题只是它们的打印格式吗?
-
无需将它们转换为字符串或使用
replace。此外,您说您正在将它们转换为“数字(整数)”,但您只是将它们更改为不同的数字字符。我希望你能理解其中的区别。 -
@femtoRgon。是的。问题是如何在不改变值格式的情况下将字母转换为数字。所以,结果也应该是二维数组。我该怎么做?
-
@ErwinBolwidt,我认为当我们使用 Arrays.deepToString() 时它是有效的。 (如果我错了,请纠正我..)
标签: java multidimensional-array char