将char插入矩阵

时间:2015-12-04 22:02:30

标签: java matrix

我试图将一个字符插入矩阵,但每次都有一个例外。

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)

3 个答案:

答案 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();