从字符串中获取2个由空格分隔的整数

时间:2018-11-12 03:09:02

标签: java

假设我有一个输入格式为“ a b”,我想提取a和b。例如,如果我的输入是10 15,我想将a设置为10,将b设置为15,通常使用StringTokenizer来做到这一点,就像这样:

StringTokenizer st = new StringTokenizer(str, " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());

有什么办法可以用更短的代码来做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用int[]将其转换为String.split(String),然后通过映射将其流化IntStream。喜欢,

int[] vals = Stream.of(str.split("\\s+")).mapToInt(Integer::parseInt).toArray();
int a = vals[0], b = vals[1];

可以 使用逗号分隔作业。当然,您的原始版本代码使用该技巧来消除一行。但是,现在我们可以通过使用ab来消除vals[0]vals[1]。没有更多的上下文,我不一定会推荐。