gpt4 book ai didi

java - java中如何获取不带空格的输入?

转载 作者:行者123 更新时间:2023-12-01 07:05:29 24 4
gpt4 key购买 nike

如何在没有空格的单行中获取整数数组的输入。数字只能是 0-9,所以所有内容都是单位数字。

输入:-

123456

输出:-

a[0]=1 a[1]=2 a[2]=3 a[3]=4 a[4]=5 a[5]=6

请帮我解决这个问题。

最佳答案

假设您以字符串形式获取输入,您可以执行类似的操作(自 Java 8 起就可以使用流和 lambda)

String input = "123456";
int[] array = input.chars().map(i->i-'0').toArray();

System.out.println(Arrays.toString(array));

输出:[1, 2, 3, 4, 5, 6]

这段代码可以被认为是

的较短版本
String input = "123456";
int[] array = new int[input.length()];
int i = 0;
for (char c : input.toCharArray())
array[i++] = c - '0';

无论如何,这个解决方案基于整数值或 char 表示其在 Unicode 表中的索引的想法。由于数字按 0,1,2,3,4,5,6,7,8,9 排序,我们对检查字符的位置和 '0' 位置之间的差异感兴趣。例如,'3' 放置在索引 51 处,而 '0' 的索引是 48,因此 int value = '3'-'0' 被翻译为 int value = 51 - 48,它创建值为 3 的整数。

<小时/>

或者,如果这是一个选项,您可以获取 char[] 数组而不是 int[],只需使用 toCharArray 即可包含字符串中的所有字符

String input = "123456";
char[] array = input.toCharArray();
<小时/>

如果您也对 String[] 的结果感兴趣,则 since Java 8 you can simply use

String input = "123456";
String[] array = input.split("");

而不是神秘的(即使对于那些具有基本正则表达式知识的人): split("(?!^)")split("(?<!^)")split("(?<=\\d)") 或您能想到的任何正则表达式。

关于java - java中如何获取不带空格的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com