在 java 中拆分多个整数
Splitting several integers in java
我对 java 很陌生。我试图提示用户输入 4 个整数,然后输入 space 并最终在最后打印出来。我对我写东西的顺序和使用 split(" ");
的顺序有点困惑
import java.util.Scanner;
public class calculations {
public static void main(String[] args) {
Scanner Keyboard = new Scanner(System.in);
System.out.println("Enter 4 integer numbers here: ");
int numbers = keyboard.nextInt();
// Need split(" "); here?
} // End main string args here
} // End class calculations here
如有任何帮助或建议,我们将不胜感激。我已经查看了 Whosebug 上的其他方法,但不知何故我不断收到错误。
- 用 keyboard.nextLine
在一个字符串中读取
- 使用String的split方法获取String数组
- 使用 Integer.parseInt
将数组的每个元素转换为 int
- 打印你的整数。
import java.util.Scanner;
public class calculations {
public static void main(String[] args) {
Scanner Keyboard = new Scanner(System.in);
System.out.println("Enter 4 integer numbers here: ");
// Scan an entire line (containg 4 integers separated by spaces):
String lineWithNumbers = Keyboard.nextLine();
// Split the String by the spaces so that you get an array of size 4 with
// the numbers (in a String).
String[] numbers = lineWithNumbers.split(" ");
// For each String in the array, print them to the screen.
for(String numberString : numbers) {
System.out.println(numberString);
}
} // End main string args here
} // End class calculations here
此代码将打印所有数字,如果您确实想对整数执行某些操作(例如数学运算),您可以将字符串解析为 int,如下所示:
int myNumber = Integer.parseInt(numberString);
希望对您有所帮助。
如果建议使用 Scanner
class 的功能从用户输入中检索数字:
Scanner keyboard = new Scanner(System.in);
int[] numbers = new int[4];
System.out.println("Enter 4 integer numbers here: ");
for (int i = 0; i < 4 && keyboard.hasNextInt(); i++) {
numbers[i] = keyboard.nextInt();
}
System.out.println(Arrays.toString(numbers));
这段代码创建了一个大小为 4 的数组,然后遍历用户输入并从中读取数字。如果他有四个数字,或者如果用户输入的不是数字,它将停止解析输入。比如他输入1 blub 3 4
,那么数组就是[1, 0, 0, 0]
.
与以上答案的 nextLine
方法相比,此代码具有一些优势:
- 你不必关心整数转换(异常处理)
- 您可以将这些数字写在一行上,也可以将每个数字写在自己的行上
如果您想读取任意数量的数字,请改用 List
:
List<Integer> numbers = new ArrayList<>();
System.out.println("Enter some integer numbers here (enter something else than a number to stop): ");
while (keyboard.hasNextInt()) {
numbers.add(keyboard.nextInt());
}
System.out.println(numbers);
我对 java 很陌生。我试图提示用户输入 4 个整数,然后输入 space 并最终在最后打印出来。我对我写东西的顺序和使用 split(" ");
的顺序有点困惑import java.util.Scanner;
public class calculations {
public static void main(String[] args) {
Scanner Keyboard = new Scanner(System.in);
System.out.println("Enter 4 integer numbers here: ");
int numbers = keyboard.nextInt();
// Need split(" "); here?
} // End main string args here
} // End class calculations here
如有任何帮助或建议,我们将不胜感激。我已经查看了 Whosebug 上的其他方法,但不知何故我不断收到错误。
- 用 keyboard.nextLine 在一个字符串中读取
- 使用String的split方法获取String数组
- 使用 Integer.parseInt 将数组的每个元素转换为 int
- 打印你的整数。
import java.util.Scanner;
public class calculations {
public static void main(String[] args) {
Scanner Keyboard = new Scanner(System.in);
System.out.println("Enter 4 integer numbers here: ");
// Scan an entire line (containg 4 integers separated by spaces):
String lineWithNumbers = Keyboard.nextLine();
// Split the String by the spaces so that you get an array of size 4 with
// the numbers (in a String).
String[] numbers = lineWithNumbers.split(" ");
// For each String in the array, print them to the screen.
for(String numberString : numbers) {
System.out.println(numberString);
}
} // End main string args here
} // End class calculations here
此代码将打印所有数字,如果您确实想对整数执行某些操作(例如数学运算),您可以将字符串解析为 int,如下所示:
int myNumber = Integer.parseInt(numberString);
希望对您有所帮助。
如果建议使用 Scanner
class 的功能从用户输入中检索数字:
Scanner keyboard = new Scanner(System.in);
int[] numbers = new int[4];
System.out.println("Enter 4 integer numbers here: ");
for (int i = 0; i < 4 && keyboard.hasNextInt(); i++) {
numbers[i] = keyboard.nextInt();
}
System.out.println(Arrays.toString(numbers));
这段代码创建了一个大小为 4 的数组,然后遍历用户输入并从中读取数字。如果他有四个数字,或者如果用户输入的不是数字,它将停止解析输入。比如他输入1 blub 3 4
,那么数组就是[1, 0, 0, 0]
.
与以上答案的 nextLine
方法相比,此代码具有一些优势:
- 你不必关心整数转换(异常处理)
- 您可以将这些数字写在一行上,也可以将每个数字写在自己的行上
如果您想读取任意数量的数字,请改用 List
:
List<Integer> numbers = new ArrayList<>();
System.out.println("Enter some integer numbers here (enter something else than a number to stop): ");
while (keyboard.hasNextInt()) {
numbers.add(keyboard.nextInt());
}
System.out.println(numbers);