error: incompatible types: String[] cannot be converted to String

error: incompatible types: String[] cannot be converted to String

当按以下方式输入字符串时,我尝试使用字符串拆分函数在 java 中输入 6 x 6 矩阵,并打印该矩阵。

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6

我得到的输出是

Main.java:24: error: incompatible types: String[] cannot be converted to String
                                c[j] = b[i].split(" ");

我的代码:

import java.util.*;
import java.io.*;

class Solution {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        int a[][] = new int[6][6];
        String b[] = new String[6];

        for (int i = 0; i < 6; i++) {
            b[i] = s.nextLine();
        }

        // initializing the 2d array a[][]
        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                String c[] = new String[6];
                c[j] = b[i].split(" ");
                a[i][j] = Integer.parseInt(c[j]);
            }
        }

        // printing the input array
        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                System.out.print("\ta[i][j]\t");
            }
        }
    }
}

请告诉我如何克服这个错误

split()函数的return类型是数组类型。因为你要求 java 给我每个值作为单独的值,由 " " (space) 分隔。所以 java 将创建一个包含每个值的数组,然后 return 将数组传给你。为了存储数组,您需要一个数组类型的变量。这里 c 代表一个数组,但是 c[j] 代表数组的单个索引。

您可以像这样更改您的代码:

for (int i = 0; i < 6; i++) {
    String c[] = b[i].split(" ");
    for (int k = 0; k < c.length; k++) {
        a[i][k] = Integer.parseInt(c[k]);
    }
}

输入是整数,您稍后将它们转换为整数,我建议您将输入作为整数,如下所示:

class Solution {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        int a[][] = new int[6][6];

        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                a[i][j] = s.nextInt();
            }
        }

        // printing the input array
        for (int i = 0; i < 6; i++) {
            for (int j = 0; j < 6; j++) {
                System.out.print("\ta[i][j]\t");
            }
        }
    }
}

当我们调用Stringreturn的split函数时String[]。所以 c[j](属于 String 类型)不能等于 String[].

以下代码应替换为:

// initializing the 2d array a[][]
for (int i = 0; i < 6; i++) {
    String[] c = b[i].split(" ");
    for (int j = 0; j < 6; j++) {
        a[i][j] = Integer.parseInt(c[j]);
    }
}