在Java中,将数字字符串转换为数组,其中每个数字都是不同的插槽
假设我有一个在Java中,将数字字符串转换为数组,其中每个数字都是不同的插槽,java,arrays,string,Java,Arrays,String,假设我有一个123456789字符串。我想拆分这个字符串,每个数字都放在数组中的不同插槽中。我无法使用split()方法,因为没有可拆分的内容。我如何在Java中实现这一点。如果您只处理非负整数,该方法应该适合您。它将字符串作为数组提供给您。string类有一个简洁的方法来实现这一点。是否强制要求数据为一位数?如果数据可能为多位数,则无法识别数值是否为一位数或多位数? int x=123456789; char[] array = x.toString().toCharArray(); int
123456789
字符串。我想拆分这个字符串,每个数字都放在数组中的不同插槽中。我无法使用split()
方法,因为没有可拆分的内容。我如何在Java中实现这一点。如果您只处理非负整数,该方法应该适合您。它将字符串作为数组提供给您。string类有一个简洁的方法来实现这一点。是否强制要求数据为一位数?如果数据可能为多位数,则无法识别数值是否为一位数或多位数?
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]);
}
e、 g.如果是12(十二),那么如果所有字符串都是512,那么您将如何确定是将512表示为5,1,2还是5,12?
如果修复了数字为单位数和非负数,则
String
类的tocharray()
将适用于您您可以使用以下方法避免创建字符串
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);
长x=x;
ByteBuffer bb=ByteBuffer.allocate(18);
如果(x==0){
bb.put((字节)0);
}否则{
而(x>0){
bb.put((字节)(x%10));
x/=10;
}
}
int len=bb.position();
字节[]位数=新字节[len];
对于(int i=0;i
数据必须是个位数吗?是的,它将始终是个位数。然后ToCharray()
方法将适用于String
类,正如旁注:您可以在空字符串上拆分(“1234”拆分(“”);
),但是,您可以在开始时获得每个字符加上一个空字符串。这只是为了记录,我还建议使用这里建议的tocharray()
方法;char[]数组=x.toString().tocharray();int intarray[]=新的int[array.length];对于(inti=0;iintarray[i]=array[i]-“0”代码>。
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);