不兼容的类型和System.out.print错误?

时间:2013-10-13 05:08:32

标签: java

这项任务的目的是创建一个程序,允许一个人输入他们的名字和姓氏,以及他们的出生年份。我们必须使用他们的名字的第一个字母,姓氏的前三个字母和出生年份的最后两个数字来创建用户ID。例如,Austin Carlile, 1987 - > ACar87。  这是我的代码:

import java.util.Scanner;

public class UserID {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int userID;

        System.out.print("Enter Your First Name: ");
        String s1 = input.nextLine();

        System.out.print("Enter Your Last Name: ");
        String s2 = input.nextLine();

        System.out.print("Enter Your year of birth: ");
        String s3 = input.nextLine();

        s1 = s1.substring(0, 1);
        s2 = s2.substring(0, 3);
        s3 = s3.substring(2, 4);

        userID = s1 + s2 + s3;

        System.out.print("The User's ID is: %userID", userID);
    }

}

我已经改变了我的程序,试图修复我得到的错误,如果有什么看似明显错误,请原谅我。

我得到的错误是:  error: incompatible types with the userID = s1 + s2 + s3行,而克拉是最后一个+。

另一个是:error: no suitable method found for print(String,int)用于System.out.print("The User's ID is: %userID", userID);,而克拉位于System.out.print的第二个句号之下。

任何人都可以帮我解决这个问题吗?

4 个答案:

答案 0 :(得分:3)

userId设为String。你的问题应该解决。 当你打印时,你不会传递另一个参数。追加它。

 System.out.print("The User's ID is: " + userID);

答案 1 :(得分:0)

  1. userID应该是String。这样,您就可以将s1s2s3的值连接到它。

  2. System.out.print("The User's ID is: %userID" + userID);已关闭,但语法上仍然不正确。如果您想进行位置打印,那么您要查找的方法是System.out.printf(),并且您希望确保使用Formatter类规定的%s。< / p>

    System.out.printf("The User's ID is: %s", userID);
    

    ...但是因为只有一个元素,所以你应该将字符串文字与printlnprint中的变量连接起来(但是后者,以及上面的内容,你需要包含\n字符。

    System.out.print("The User's ID is: " + userID +  "\n");
    System.out.println("The User's ID is: " + userID);
    

答案 2 :(得分:-1)

前 System.out.print(“用户ID为:%userID”+ userID); &LT;&LT;&LT;语法错误

在 System.out.printf(“用户ID为:%d”,userID);

答案 3 :(得分:-1)

您无法在打印中使用formatter

你可以使用

System.out.print("The User's ID is:"+ userID);

或者如果你想使用格式化程序,你可以使用

System.out.printf("The User's ID is: %d",userID);