我创建了字节数组,但不知道这是否是将数字字符串放入其中的方式。我是这个字节数组的新手,我很难知道我是否做得对。
public class AdditionOnlyInt implements BigInt
{
private byte[] data;
public AdditionOnlyInt(String number)
{
data = new byte[number.length()];
number.replace("0","");
int i = 0;
int counter = number.length();
while(i<number.length())
{
data[i] = (byte) number.charAt(counter);
i++;
}
}
}
我必须摆脱前导零,然后将数字从最不重要的数字放到最重要的数据,这是计数器变量的原因
答案 0 :(得分:0)
试试这个..
public class AdditionOnlyInt implements BigInt
{
private byte[] data;
public AdditionOnlyInt(String number)
{
data = new byte[number.length()];
String num=number.replace("0","");
int i = 0;
int counter = number.length()-1;
while(counter>=0)
{
data[i++] = Byte.parseByte(String.valueOf(num.charAt(counter--)));
}
}
}
答案 1 :(得分:0)
这是一个错误:
number.replace("0","");
首先,它不执行任何操作:String是不可变的,因此所有String方法都返回一个新字符串,因此您必须分配返回值:
number = number.replace("0","");
其次,这可以删除所有零 - 前导或其他。不是你想要的。要删除前导零,请执行以下操作:
number = number.replaceAll("^0+","");
这使用正则表达式来仅定位前导零。
最后,如果您尝试表示数字的数字,请使用int[]
并获取字符的整数值,减去“0”:
int[] data;
data[i] = number.charAt(counter) - '0'; // '0' --> 0, '1' --> 1, '2' --> 2 etc
进行这些更改,看看你是否接近。