java - 如何以任意顺序将输入分配给程序?
问题描述
我的代码中有四个输入,我想做的是以我选择的任何顺序在控制台中输入它们。
所以我可以输入:
t = 20,d = 100,T = 500,D = 100
或者
d = 100,t = 20,D = 100,T = 500
因此,无论顺序如何,只要我输入 "t = something" 、 "d = something" 、 T = "something" 和 D = "something" ,它就会将正确的整数值分配给变量。
这是我到目前为止所拥有的:
int t = keyboard.nextInt(); int d = keyboard.nextInt(); int D = keyboard.nextInt(); int T = keyboard.nextInt();
我将如何做到这一点?
解决方案
我会首先遵循 OldProgrammer 的建议,并将该行作为单个字符串读取。split()
您可以使用andsubstring()
方法解析字符串:
String input = keyboard.nextLine();
// Per your example, would be something like "t=20,d=100,T=500,D=100"
int t = 0, d = 0, T = 0, D = 0;
String[] inputArray = input.split(","); // Splits the input string at each comma & returns an array
for(String s : inputArray) {
if(s.startsWith("t"))
t = Integer.parseInt(s.substring(2));
else if(s.startsWith("d"))
d = Integer.parseInt(s.substring(2));
else if(s.startsWith("T"))
T = Integer.parseInt(s.substring(2));
else if(s.startsWith("D"))
D = Integer.parseInt(s.substring(2));
}
推荐阅读
- c# - 如何在正则表达式匹配中使用 \u 或 \x?(C#)
- regex - 正则表达式在具有静态位置但字符数量可变的字符串中查找值
- python - 为什么要使用 UniqueTogetherValidator 而不是 Django 的默认验证行为?
- sql - 在 Postgres 中:在多个值上使用“IS DISTINCT FROM”的最简洁方法是什么?
- python - 给定列表中的索引
- processing - 我看到很多人在他们的代码中使用 I,但我不确定如何以及何时使用它。如果有人可以请解释一下,那将不胜感激
- java - 有没有办法在不使用复制/粘贴方法的情况下在 Android Studio 中将代码从 Java 转换为 Kotlin?
- angular - 为什么我的事件变量在输入时未定义?
- android - API 请求通过 localhost 工作,但不能通过 Web 服务器工作
- python - 从未标记的 csv 导入时,在张量流数据集中标记列的正确方法是什么?