需要不兼容的类型:int-find:java.lang.String(基本编程)

需要不兼容的类型:int-find:java.lang.String(基本编程),java,types,Java,Types,我已经遇到过这个错误好几次了,我尝试了很多方法来修复它,但我似乎无法找出哪里出了问题。代码如下: import java.util.Scanner; public class InputExample { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String name1 = scan.nextLine(); String

我已经遇到过这个错误好几次了,我尝试了很多方法来修复它,但我似乎无法找出哪里出了问题。代码如下:

import java.util.Scanner;
public class InputExample {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        String name1 = scan.nextLine();
        String name2 = scan.nextLine();
        int num1 = scan.nextLine();
        double num2 = scan.nextLine();

        System.out.println("Employee Name:" + name2 + name1);
        System.out.println("Age:" + num1);
        System.out.println("Salary:" + (double)num2);
    }
}
具体显示的错误是:

[文件:/InputExample.java行:9,列:25]需要不兼容的类型:int-found:java.lang.String

[文件:/InputExample.java行:10,列:28]需要不兼容的类型:double-found:java.lang.String


您正在读取字符串,但希望将其另存为整数/双精度。试试这个:

int num1 = Integer.valueOf(scan.nextLine());
双人也一样

或者像OldCurmudgeon提到的:

int num1 = scan.nextInt();

您正在读取字符串,但希望将其另存为整数/双精度。试试这个:

int num1 = Integer.valueOf(scan.nextLine());
双人也一样

或者像OldCurmudgeon提到的:

int num1 = scan.nextInt();

您正在读取字符串,但希望将其另存为整数/双精度。试试这个:

int num1 = Integer.valueOf(scan.nextLine());
双人也一样

或者像OldCurmudgeon提到的:

int num1 = scan.nextInt();

您正在读取字符串,但希望将其另存为整数/双精度。试试这个:

int num1 = Integer.valueOf(scan.nextLine());
双人也一样

或者像OldCurmudgeon提到的:

int num1 = scan.nextInt();

这是因为
scan.nextLine()
返回一个
字符串
,您正试图将返回的
字符串
分配给一个
int
。您需要
scan.nextInt()scan.nextLine()
返回一个
字符串
,您正试图将返回的
字符串
分配给一个
int
。您需要
scan.nextInt()scan.nextLine()
返回一个
字符串
,您正试图将返回的
字符串
分配给一个
int
。您需要
scan.nextInt()scan.nextLine()
返回一个
字符串
,您正试图将返回的
字符串
分配给一个
int
。您需要
scan.nextInt()我想。
scan.nextInt()
可能更好。您可以在答案中更改它-这是一种公认的最佳做法,可以使您的答案尽可能地最佳。
scan.nextInt()
可能更好。您可以在答案中更改它-这是一种公认的最佳做法,可以使您的答案尽可能地最佳。
scan.nextInt()
可能更好。您可以在答案中更改它-这是一种公认的最佳做法,可以使您的答案尽可能地最佳。
scan.nextInt()
可能更好。您可以在答案中更改它-这是一个经过深思熟虑的好做法,可以使您的答案尽可能最好。