我有一个用户提交的号码。
我想做这样的事情:1568301
到这样的数组:1, 5, 6, 8, 3, 0, 1
。
我怎么能做到这一点而不在每个数字之间添加“,”或类似的东西?(类型 int)。
谢谢。
我有一个用户提交的号码。
我想做这样的事情:1568301
到这样的数组:1, 5, 6, 8, 3, 0, 1
。
我怎么能做到这一点而不在每个数字之间添加“,”或类似的东西?(类型 int)。
谢谢。
String str = "123456";
str.toCharArray();
会大致做你想做的事。使用正则表达式的更复杂的版本是:
String str = "123456";
str.split("(?<!^)");
它使用否定的lookbehind(split()
采用正则表达式-上面说只要左边的元素不是行首,就可以分割任何东西。split("")
会给你一个前导的空白字符串)。
第二种解决方案更复杂,但为您提供了一个Strings
. 另请注意,它会为您提供一个用于空白输入的单元素空数组。第一个解决方案为您提供了一个Chars
. 无论哪种方式,您都必须将它们映射到Integers
(可能使用Integer.parseInt()
或Character.digit()
?)
"1568301".toCharArray()
应该做的工作。
您可以将拆分与“”一起使用,它将是这样的:
String test = "123456";
String test2[] = test.split("");
for (int i = 1; i < test2.length; i++) {
System.out.println(test2[i]);
}
你不能简单地通过迭代字符串来填充数组吗?
char[] arr = new char[str.length];
for(int i=0; i<str.length; i++){
arr[i] = str.charAt(i);
}
甚至更好
char[] arr = "0123456".toCharArray();
要获取整数数组中的值:
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 为底的。
如果您的号码是String
格式,您可以简单地执行以下操作:
String str = "1568301";
char[] digitChars = str.toCharArray();
期待这样的事情
String ss ="1568301";
char[] chars = ss.toCharArray();
我猜你正在寻找一个int数组。
我建议使用以下代码:
String str = "1568301";
int [] arr = new int[str.length()];
for(int i=0; i<arr.length; i++)
{
arr[i] = str.charAt(i)-'0';
}