繁体   English   中英

如何替换矩阵内的元素?

[英]How can i replace the elements inside matrix?

我的输入元素是 0 或 1...我想用 I 替换 1,用 N 替换 0。

目前我能够阅读和 output 元素,如何用 I 和 N 替换和 output

        System.out.println("Enter the elements of the matrix");
        for (i = 0; i < m; i++)
            for (j = 0; j < n; j++)
                first[i][j] = in.nextInt();

        // Display the elements of the matrix
        System.out.println("Elements of the matrix are");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++)
                System.out.print(first[i][j] + "\n");

由于我是 java 的新手,因此将不胜感激。 谢谢!

由于您想用字符替换数字,因此矩阵数据类型应为char 这是一个例子:

int m = 3, n = 3;
char[][] matrix = new char[m][n];
Scanner scan = new Scanner(System.in);
System.out.println("Enter the elements of the matrix");
for (int i = 0; i < m; i++)
     for (int j = 0; j < n; j++)
          matrix[i][j] = scan.next().charAt(0);
for(int i = 0; i < matrix.length; i++)
    for(int j = 0; j < matrix[i].length; j++)
        if(matrix[i][j]=='1') 
            matrix[i][j] = 'I';
        else if(matrix[i][j]=='0')
            matrix[i][j] = 'N';
System.out.println(Arrays.deepToString(matrix));

样本输入/输出:

Enter the elements of the matrix
1
1
1
0
0
0
1
0
1
[[I, I, I], [N, N, N], [I, N, I]]

根据您的要求,您可以通过以下方式扫描xxx xxx xxx xxx形式的字符,其中 x 应为 0 或 1,并根据 m 和 n 编写:

int m = 4, n = 3;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the elements of the matrix");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < m; i++) {
    String inp = scan.nextLine();
    while (inp.length() != n || !inp.matches("[01]+")) {
        System.out.println("Warning: input must be "+n+" characters and only 1 or 0.");
        inp = scan.nextLine();
    }
    sb.append(inp+" ");
}
String str = sb.toString().trim().replaceAll("1", "I");
str = str.replaceAll("0", "N");
System.out.println(str);

样本输入/输出:

Enter the elements of the matrix
112
Warning: input must be 3 characters and only 1 or 0.
111
000
101
010
III NNN INI NIN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM