我有一个由用户提交的号码
我想做这样的事:1568301
这样的数组:1, 5, 6, 8, 3, 0, 1
。
如果不在每个数字或类似的东西之间添加“,”,我怎么能这样做? (输入int)。
感谢。
答案 0 :(得分:9)
String str = "123456";
str.toCharArray();
将大致按照您的意愿行事。使用正则表达式的更复杂版本是:
String str = "123456";
str.split("(?<!^)");
使用负面的lookbehind(split()
采用正则表达式 - 上面说的是对任何东西进行拆分,前提是左边的元素不是行首。split("")
会给你一个领先的空白字符串)。
第二种解决方案更复杂,但为您提供了Strings
的数组。另请注意,它将为空白输入提供一个单元素空数组。第一个解决方案为您提供了Chars
的数组。无论哪种方式,您都必须将这些映射到Integers
(可能使用Integer.parseInt()
或Character.digit()
?)
答案 1 :(得分:3)
"1568301".toCharArray()
应该完成这项工作。
答案 2 :(得分:2)
您可以使用拆分“” 它会是这样的:
String test = "123456";
String test2[] = test.split("");
for (int i = 1; i < test2.length; i++) {
System.out.println(test2[i]);
}
答案 3 :(得分:1)
你不能通过遍历String ??
来填充数组char[] arr = new char[str.length];
for(int i=0; i<str.length; i++){
arr[i] = str.charAt(i);
}
甚至更好
char[] arr = "0123456".toCharArray();
答案 4 :(得分:1)
获取整数数组中的值:
String str = "1568301";
int[] vals = new int[str.length];
for (int i = 0; i < str.length(); i++) {
vals[i] = Character.digit(str.charAt(i), /* base */ 10));
}
Character.digit(char, int)
的第二个参数是数字基数。我假设你的号码是10号。
答案 5 :(得分:1)
如果您的号码是String
格式,则可以执行以下操作:
String str = "1568301";
char[] digitChars = str.toCharArray();
答案 6 :(得分:1)
期待这样的事情
String ss ="1568301";
char[] chars = ss.toCharArray();
答案 7 :(得分:1)
我猜你正在寻找一个int数组。
我建议使用以下代码:
String str = "1568301";
int [] arr = new int[str.length()];
for(int i=0; i<arr.length; i++)
{
arr[i] = str.charAt(i)-'0';
}