假设我有一个输入格式为“ 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());
有什么办法可以用更短的代码来做到这一点?
答案 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];
您 可以 使用逗号分隔作业。当然,您的原始版本代码使用该技巧来消除一行。但是,现在我们可以通过使用a
和b
来消除vals[0]
和vals[1]
。没有更多的上下文,我不一定会推荐。