我试图在Java中输入某些字符串和整数变量的值。但是,如果我在整数之后输入字符串,那么在控制台中,字符串输入将被跳过并移动到下一个输入。
这是密码
String name1;
int id1,age1;
Scanner in = new Scanner(System.in);
//I can input name if input is before all integers
System.out.println("Enter id");
id1 = in.nextInt();
System.out.println("Enter name"); //Problem here, name input gets skipped
name1 = in.nextLine();
System.out.println("Enter age");
age1 = in.nextInt();
也许你可以这样试试。。
而不是这个代码
System.out.println("Enter name"); //Problem here, name input gets skipped
name1 = in.nextLine();
试试这个
System.out.println("Enter name");
name1 = in.next();
这是您更新的工作代码。
package myPackage;
import java.util.Scanner;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
String name1;
int id1,age1;
Scanner in = new Scanner(System.in);
//I can input name if input is before all integers
System.out.println("Enter id");
id1 = in.nextInt();
System.out.println("Enter name"); //Problem here, name input gets skipped
name1 = in.next();
System.out.println("Enter age");
age1 = in.nextInt();
}
}
这是一个常见问题,因为nextLine
方法不读取输入的换行符,所以当您发出命令nextLine
时,扫描仪会找到换行符并将其作为一行提供给您。
一个变通方法可以是这样的:
System.out.println("Enter id");
id1 = in.nextInt();
in.nextLine(); // skip the newline character
System.out.println("Enter name");
name1 = in.nextLine();
另一种方法是始终使用nextLine
包装成整数。parseInt
:
int id1;
try {
System.out.println("Enter id");
id1 = Integer.parseInt(input.nextLine());
} catch (NumberFormatException e) {
e.printStackTrace();
}
System.out.println("Enter name");
name1 = in.nextLine();
我不会使用扫描仪。next()
,因为这将只读取下一个标记,而不是整行。例如,以下代码:
System.out("Enter name: ");
String name = in.next();
System.out(name);
将产生:
Enter name: Mad Scientist
Mad
它不会处理科学家,因为疯狂本身已经是一个完整的令牌。因此,也许这是您的应用程序的预期行为,但它与您在问题中发布的代码具有不同的语义。
这是Person类。 这是Employee类。
问题内容: System.out.print(“Name : “); String name = in.nextLine(); 输出将是: 名称:测试 年龄:20 建立成功 当我调试它们时,它不会读取“ city”的用户输入。但是,当我将“年龄”的数据类型更改为字符串时,它将读取。我如何在读取城市用户输入的系统中将age的数据类型保持为整型? 问题答案: 读取年龄后,由于缓冲区中仍然有换行符,请将
我是一个绝对的初学者,没有任何编程语言的经验。 我写了一个程序作为将阿拉伯数字转换成罗马数字的练习。它起作用了。然而,如果输入的是字符串而不是整数,我想添加一部分来处理这个问题。我不知道该怎么做。我试图使用try/catch,但我不知道如何正确使用它。现在程序要求我输入两次数字。怎么办? 以下是他的主要方法:
我是一个学生,我有一个小问题验证输入。 我试过的是把字符串解析成double的测试,但我做不到。我不知道如何测试双倍是否只是数字。 请给我一个我该做什么的线索。
问题内容: 我有以下html5输入元素: 为什么此输入允许在输入字段中输入字符“ e”?没有其他字母字符可以输入(按预期方式) 使用chrome v.44.0.2403.107 问题答案: 因为这正是规范所说的应该工作的方式。输入的数字可以接受浮点数,包括负号和或字符(其中指数是或后面的数字): 浮点数按以下顺序由以下部分组成: 可选地,第一个字符可以是“ ”字符。 “ ” 范围内的一个或多个字符
我正在尝试制作一个计算某人所做步数的程序(如果这个数字更大或等于10000,程序就应该停止),但我似乎找不到一种方法来键入“回家”,然后输入到家所必需的步数。