Ste*_*ven 26 java input java.util.scanner
我正在研究一个程序,我希望允许用户在出现提示时输入多个整数.我曾尝试使用扫描仪,但我发现它只存储用户输入的第一个整数.例如:
输入多个整数:1 3 5
扫描仪只能获得第一个整数1.是否可以从一行获得所有3个不同的整数,并且以后能够使用它们?这些整数是我需要根据用户输入操作的链表中数据的位置.我无法发布我的源代码,但我想知道这是否可行.
Pra*_*uis 25
我一直在hackerearth上使用它
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String lines = br.readLine();
String[] strs = lines.trim().split("\\s+");
for (int i = 0; i < strs.length; i++) {
a[i] = Integer.parseInt(strs[i]);
}
Run Code Online (Sandbox Code Playgroud)
Bit*_*nja 10
你想把数字作为一个字符串,然后String.split(" ")用来获得3个数字.
String input = scanner.nextLine(); // get the entire line after the prompt
String[] numbers = input.split(" "); // split by spaces
Run Code Online (Sandbox Code Playgroud)
数组的每个索引都将保存一个字符串表示的数字,可以使其成为ints byInteger.parseInt()
E.A*_*.A. 10
试试这个
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
if (in.hasNextInt())
System.out.println(in.nextInt());
else
in.next();
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,扫描程序使用分隔符模式"\ p {javaWhitespace} +",它将至少一个空格作为分隔符.你不必做任何特别的事.
如果要匹配空格(1或更多)或逗号,请将扫描程序调用替换为此
Scanner in = new Scanner(System.in).useDelimiter("[,\\s+]");
Run Code Online (Sandbox Code Playgroud)
Scanner有一个名为hasNext()的方法:
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext())
{
System.out.println(scanner.nextInt());
}
Run Code Online (Sandbox Code Playgroud)
如果你知道你将得到多少整数,那么你可以使用nextInt()方法
例如
Scanner sc = new Scanner(System.in);
int[] integers = new int[3];
for(int i = 0; i < 3; i++)
{
integers[i] = sc.nextInt();
}
Run Code Online (Sandbox Code Playgroud)
小智 5
爪哇 8
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int arr[] = Arrays.stream(in.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
182075 次 |
| 最近记录: |