java - 错误:不兼容的类型:String[] 无法转换为 String
问题描述
当以以下方式输入字符串时,我尝试使用字符串拆分函数在java中输入6乘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()
函数的返回类型是数组类型。因为您要求 java 将每个值作为单独的值给我,并由" "
(空格)分隔。所以java会为每个值创建一个数组并返回给你。为了存储数组,您需要一个数组类型的变量。这里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");
}
}
}
}
推荐阅读
- python - 以编程方式将表单字段添加到 Wagtail Form
- python - googletrans 停止将所有语言检测为英语
- c# - C# 是运算符,拆箱的确切行为
- python - 如何在pygame中产生多个敌人
- ios - 如何在 SwiftUI 上处理带有参数的意图?
- php - 将元数据添加到 Stripe PaymentIntent 令牌
- macos - 如何在 OS X 上使用 CMake,以新的 Arm M1 为目标
- reactjs - 无法从 useContext 访问调度
- python - 为什么列出追加和弹出(0)比增加和减少队列中的前后计数器更快?
- python - 需要帮助查找和修复“RuntimeWarning:在 double_scalars 中遇到除以零”