[英]Convert a string of numbers to an array in Java, where each number is a different slot
假设我有一个123456789
的字符串。 我想拆分这个字符串,每个数字都在数组的不同插槽中。 我不能使用split()
方法,因为没有什么可以拆分。 我将如何在Java中实现这一目标。
int x=123456789;
char[] array = x.toString().toCharArray();
int intarray[] = new int[array.length];
for (int i = 0; i < array.length; i++) {
intarray[i] = Integer.parseInt(array[i]);
}
在此之后,你的intarray
将是你的数字阵列。 如果您的整数也可以是负数,则必须取其绝对值并进行相同的操作,然后将多个第一个数组值除以-1
。 但我猜,这不是必需的。
编辑:
我想,我不理解你的问题。 如果要仅拆分字符串,则必须仅使用此行。 我写了关于整数的文章,也可能有用。
string x="123456789";
char[] array = x.toCharArray();
如果您只处理非负整数,则toCharArray()
方法应该适合您。 它为字符串提供了一个数组。
String类有一个简洁的方法来执行此操作, toCharArray() 。
您可以使用以下内容来避免创建字符串。
long x = x;
ByteBuffer bb = ByteBuffer.allocate(18);
if (x == 0) {
bb.put((byte) 0);
} else {
while (x > 0) {
bb.put((byte) (x % 10));
x /= 10;
}
}
int len = bb.position();
byte[] digits = new byte[len];
for (int i = 0; i < len; i++)
digits[i] = bb.get(len - i - 1);
数据是单位数的是否是强制性的?如果数据可能有多个数字,则无法识别数值是否是多位数的单个数字? 例如,如果它是12(十二),那么如果所有字符串都是512那么你将如何识别是否将512表示为5,1,2或5,12? 如果确定数字将是单个数字和非toCharArray()
然后toCharArray()
的String
类将适合你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.