繁体   English   中英

将一串数字转换为Java中的数组,其中每个数字都是不同的插槽

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM