我正在尝试制作一个程序,让很多人进入ArrayList,然后从中随机选择一个名字。代码运行正常,但请求名称输入的字符串在第一次运行时会显示两次。知道为什么会这样吗?
我希望它显示的内容:输入名称:。。。。。。
显示内容:输入名称:输入名称:。。。。。。
import java.util.*;
class RandomNumGen
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Random random = new Random();
ArrayList<String> names = new ArrayList<String>();
int a, b;
System.out.print("\nEnter the number of people: ");
a = input.nextInt();
System.out.println();
for (int i = 0; i <= a; i++)
{
System.out.print("Enter a name: ");
names.add(input.nextLine());
}
b = random.nextInt(a);
System.out.print("\nRandom name: " +names.get(b)+ "\n");
}
}
问题是,nextInt()
只使用一个整数,而不是按Enter时输入的新行字符。
要解决这个问题你可以加上
input.nextLine();
在调用nextInt()
之后,它消耗新行字符。
另一种选择是读取整行,然后将其内容(String
)解析为int
:
a = Integer.parseInt(input.nextLine());
我想从数组列表打印元素,但我得到错误的输出(.A@15db9742)
我在看问题: 编写一个程序,读取一系列整数并按升序显示。 我正在创建一个ArrayList(我是新手),我想用从命令行输入的整数填充它。对于一个数组,我可以使用for循环 但是使用无界大小的ArrayList,我不知道如何处理输入? 编辑:
我有一个数据类型的ArrayList(它存储一个名为name的字符串和一个名为age的整数)。打印Arraylist的内容时,它会打印正确的年龄,但与我上次添加的元素的名称相同。下面是PrintCollection方法 } 这是数据类
10.2. 标准输入、输出和错误 UNIX 用户已经对标准输入,标准输出和标准错误的概念非常熟悉了。这一节是为其他不熟悉的人准备的。 标准输入和标准错误(通常缩写为 stdout 和 stderr)是內建在每一个 UNIX 系统中的管道。当你 print 某些东西时,结果前往 stdout 管道;当你的程序崩溃并打印出调试信息(类似于 Python 中的错误跟踪)的时候,信息前往 stderr 管
问题内容: 为什么我从以下代码中获得“ AAAAAAAAA”而不是“ 1A234A567”: 任何想法? 问题答案: 函数以正则表达式为参数。和正则表达式“。” 表示“任何字符”。您必须对其进行转义以指定它是您想要的字符: