0

这项任务的重点是创建一个程序,允许一个人输入他们的名字、姓氏和出生年份。我们必须创建一个用户 ID,其中包含他们名字的第一个字母、姓氏的前三个字母和出生年份的最后 2 位数字。例如,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

4 回答 4

3

制作userIdString. 你的问题应该得到解决。当你打印时,你不要传递另一个参数。附加它。

 System.out.print("The User's ID is: " + userID);
于 2013-10-13T05:11:18.443 回答
0
  1. userID应该是一个String。这样,您可以将 、 和 的值连接s1s2s3

  2. System.out.print("The User's ID is: %userID" + userID);很接近,但在语法上仍然不正确。如果您想进行位置打印,那么您正在寻找的方法是System.out.printf(),并且您要确保按照课程的%s要求使用Formatter

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

    ...但是由于只有一个元素,因此您应该将字符串文字与您的变量连接起来 a printlnor print(但对于后者,并且对于上述内容,您需要包含该\n字符。

    System.out.print("The User's ID is: " + userID +  "\n");
    System.out.println("The User's ID is: " + userID);
    
于 2013-10-13T05:30:06.057 回答
-1

您不能在打印中使用格式化程序

你可以使用

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

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

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

于 2013-10-13T05:35:31.350 回答
-1

before System.out.print("用户 ID 为:%userID"+ userID); <<< 语法错误

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

于 2013-10-13T05:28:18.000 回答