Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不兼容的类型和System.out.print错误?_Java - Fatal编程技术网

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

Java 不兼容的类型和System.out.print错误?,java,Java,这项任务的重点是创建一个程序,允许一个人输入他们的名字、姓氏和出生年份。我们必须创建一个用户id,其中包含他们名字的第一个字母、姓氏的前三个字母以及出生年份的最后两位数字。例如,Austin Carlie,1987-->ACar87。 这是我的密码: import java.util.Scanner; public class UserID { public static void main(String[] args) { Scanner input = new S

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

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

我得到的错误是:
错误:不兼容的类型与userID=s1+s2+s3
行不兼容,克拉位于最后一个+

另一个是:
错误:没有找到合适的打印方法(String,int)
,该方法用于
系统输出打印(“用户ID为:%userID”,userID)和克拉在
系统.out.print
中处于第二个周期


有人能帮我解决这个问题吗?

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

 System.out.print("The User's ID is: " + userID);
以前 System.out.print(“用户ID为:%userID”+userID);
  • userID
    应该是
    字符串
    。这样,您可以将
    s1
    s2
    s3
    的值连接到它

  • System.out.print(“用户ID为:%userID”+userID)接近,但语法上仍然不正确。如果要进行位置打印,则要查找的方法是,并且要确保使用类强制要求的
    %s

    …但是因为只有一个元素,所以您应该将字符串文字与
    println
    print
    中的变量连接起来(但是对于后者以及上面的元素,您需要包含
    \n
    字符)

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

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

    你可以用任何一种

    System.out.print("The User's ID is:"+ userID);
    
    或者,如果你想使用格式化程序,你可以像


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

    userID
    int
    ,它应该是
    String
    System.out.print
    不支持分隔符。
    System.out.printf
    支持分隔符。
    %d
    用于数值;如果修复应用于
    userID
    ,它将成为
    字符串
    。int userID更改字符串userID
    System.out.print("The User's ID is:"+ userID);