我正在写一个小程序,根据用户输入的名字和生日来创建密码,并根据这个密码创建密码,我不知道我在做什么,但相信我需要多个扫描仪,但当我这样做时,我会收到这个错误"变量扫描已在方法main中定义(string[](Scanner scan=new Scanner(System.in(">
这是我的代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.print("Please Enter your first name: ");
Scanner scan = new Scanner(System.in);
String name = scan.nextLine();
System.out.print("Please Enter your last name: ");
Scanner scan = new Scanner(System.in);
String name = scan.nextLine();
scan.close();
}
}
有什么可行的想法吗?
您不需要多个Scanner对象来接受多个输入。您应该创建一个Scanner对象,并使用它来收集所需的输入。
这里有一个例子:
import java.util.*;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter your first name: ");
String fname = input.nextLine();
System.out.println("Enter your last name: ");
String lname = input.nextLine();
System.out.println("Enter your age: ");
int age = Integer.parseInt(input.nextLine());
System.out.println("Your details as entered:");
System.out.println("First Name: " + fname);
System.out.println("Last Name: " + lname);
System.out.println("Age: " + age);
}
}
还有一些额外的资源给你(扫描仪类(:https://www.w3schools.com/java/java_user_input.asp
编辑:
- 将next((替换为nextLine((
- 将nextInt((替换为Integer.parseInt(input.nextLine(((
非常感谢您提供信息@Arvind Kumar Avinash
。引用线程:扫描程序在使用next((或nextFo((?之后将跳过nextLine((?。
这是因为在同一范围内不能有两个同名的变量。
你应该重命名其中一个。。
请注意,您对String变量name
;(执行了相同的操作
如果您想同时使用相同的名称,则不应重新声明变量:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan;
String name;
System.out.print("Please Enter your first name: ");
scan = new Scanner(System.in);
name = scan.nextLine();
scan.close();
System.out.print("Please Enter your last name: ");
scan = new Scanner(System.in);
name = scan.nextLine();
scan.close();
}
}
注:
- 在本例中,您将松开用户输入的第一个值。您可能需要使用其他变量名来存储姓氏
- 显然没有理由实例化具有相同CCD_ 4的两个不同的CCD_