这项任务的目的是创建一个程序,允许一个人输入他们的名字和姓氏,以及他们的出生年份。我们必须使用他们的名字的第一个字母,姓氏的前三个字母和出生年份的最后两个数字来创建用户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
的第二个句号之下。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
将userId
设为String
。你的问题应该解决。
当你打印时,你不会传递另一个参数。追加它。
System.out.print("The User's ID is: " + userID);
答案 1 :(得分:0)
userID
应该是String
。这样,您就可以将s1
,s2
和s3
的值连接到它。
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);
...但是因为只有一个元素,所以你应该将字符串文字与println
或print
中的变量连接起来(但是后者,以及上面的内容,你需要包含\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)
;