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]);
}
}
当按以下方式输入字符串时,我尝试使用字符串拆分函数在 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]);
}
}