将字符串放入字节数组中

时间:2014-02-09 02:48:16

标签: java arrays string byte

我创建了字节数组,但不知道这是否是将数字字符串放入其中的方式。我是这个字节数组的新手,我很难知道我是否做得对。

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++;
        }

    }
}

我必须摆脱前导零,然后将数字从最不重要的数字放到最重要的数据,这是计数器变量的原因

2 个答案:

答案 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

进行这些更改,看看你是否接近。