尝试将数据输入数组时不兼容的类型

Posted

技术标签:

【中文标题】尝试将数据输入数组时不兼容的类型【英文标题】:Incompatible types when trying to input data into an array 【发布时间】:2014-03-31 17:36:13 【问题描述】:

我在以交互方式将数据输入数组时遇到问题。我正在尝试使用 nextLine 方法将一组 12 个名称添加到数组中,但是当我在第 12 行末尾编译时,它给了我错误“不兼容的类型”。

public class nextLineArray 
    public static void main(String[] args) 
        Scanner input = new Scanner(System.in);
        char names[] = new char[12];
        System.out.println("Enter the 12 names: ");

        for(int i = 0; i < 12; i++) 
            names[i] = input.nextLine();
        

        System.out.println(names);
    

【问题讨论】:

input.nextLine() 返回什么?你的 names 数组可以包含什么? 你真的想用单个字符来表示名字吗?我想你希望你的数组是 String 类型,而不是 char。 【参考方案1】:

这是因为 Scanner.nextLine() 返回的是字符串,而不是字符

尝试改变

char names[]=new char[12];

String names[] = new String[12];

【讨论】:

【参考方案2】:

为什么使用 Char 来存储名称?请改用字符串。

而且 nextLine() 返回一个字符串而不是一个字符。所以错误。

仅供参考...如果您不希望输入为空或为空,您甚至可以使用 next() 从控制台获取输入。 nextLine() 甚至将一个空字符串作为输入。尝试下一个()

【讨论】:

以上是关于尝试将数据输入数组时不兼容的类型的主要内容,如果未能解决你的问题,请参考以下文章

与 void* 类型不兼容的类型

将 List<> 转换为数组 - 我得到“尝试将元素作为与数组不兼容的类型来访问。”

核心数据 - 预填充数据时不兼容的模型

Java 不兼容的类型:输入流无法转换为扫描仪

scikit 认为不兼容的简单单向量输入数组

数据类型 text 和 varchar 在 equal to 运算符中不兼容。