我试图将一个字符插入矩阵,但每次都有一个例外。
int rows, columns;
rows = 3;
columns = 3;
char matrix[][] =new char[rows][columns];
System.out.println("Please insert '|' to go down '-' to go left or a to proceed");
for (int i = 0; i <rows ; i++) {
for (int j = columns-1,k=0; j >= k; j--)
matrix[i][j] = s.next().charAt(0);
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
System.out.printf("%d\t", matrix[i][j]);
}
System.out.println();
例外:
线程中的异常&#34; main&#34; java.util.IllegalFormatConversionException:d!= java.lang.Character
at java.util.Formatter $ FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter $ FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter $ FormatSpecifier.print(Unknown Source)
在java.util.Formatter.format(未知来源)
在java.io.PrintStream.format(未知来源)
在java.io.PrintStream.printf(未知来源)
在semester001.Question17.main(Question17.java:27)
答案 0 :(得分:1)
看起来问题就在这一行:
System.out.printf("%d\t", matrix[i][j]);
%d表示您打印整数。 %c应该用于字符。 Here's a link解释了printf
的格式答案 1 :(得分:0)
System.out.printf("%d\t", matrix[i][j]);
尝试打印整数,你想要的是:
System.out.printf("%c\t", matrix[i][j]);
试图打印角色。
关于此的良好资源:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
答案 2 :(得分:0)
将%d更改为%c解决了问题
Random dice = new Random();
int rows, columns;
rows = 3; // 1 + dice.nextInt(9);
columns = 3; // 1 + dice.nextInt(9);
char matrix[][] =new char[rows][columns];
System.out.println("Please insert '|' to go down '-' to go left or a to proceed");
for (int i = 0; i <rows ; i++) {
for (int j = columns-1,k=0; j >= k; j--)
matrix[i][j] = s.next().charAt(0);
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
System.out.printf("%c\t", matrix[i][j]);
}
System.out.println();