1

Byte[] で作成した基本的な数値を取得したい

     public static void main(String[] args) throws IOException {
           LinkedList<Byte> s1 = new LinkedList<Byte>();
           String a = "0.111112345";
           for (byte bb : a.getBytes()) {
                s1.add(bb);
            }
 //how to retrieve "0.111112345"; from s1 ?

}

Byte[] で作成した後に自分の番号を取得しますか?

4

4 に答える 4

2

Byte[]の代わりに使用していると思いますbyte[]

    byte[] t = (byte[]) s1.subList(0, 3).toArray();
    System.out.println(convertByteToInt(t));

また、parse()以下の例のように、文字列を数値に変換するために使用することもできます。

    String intString= new String(t); //<--get String from byte array
    int numInt = Integer.parseInt(intString);
于 2012-10-26T15:33:12.000 に答える
1

AByte[]はではありbyte[]ませんが、リンクリストとサブリストを使用する必要はありません。純粋にbyte[]、のように使用できます。

public static void main(String[] args) throws IOException {
  String a = "0.111112345";
  byte[] allBytes = a.getBytes("UTF-8");
  byte[] t = Arrays.copyOf(allBytes, 4);
  System.out.println(convertByteToInt(t));
}

java.util.Arrays.copyOf指定された配列の最初のセグメントのコピーを、指定された長さにゼロで切り捨てまたは拡張して返します。

これにより808333617、結果が出力されます。これは、16進数の10進表現です302E3131(UTF-8バイトの文字0、ドット、1、1)。

于 2012-10-26T15:29:10.923 に答える
0

Byte[] t = s1.subList(0, 3).toArray(新しいバイト[3]); 次に、この BigInteger コンストラクタpublic BigInteger(byte[] val)を見てください。

次に、次を使用します。 int intValue();

于 2012-10-26T15:30:54.367 に答える
0

次の行を書き直します。

Byte[] t = (Byte[]) s1.subList(0, 3).toArray();

次のように:

Byte[] t = s1.subList(0, 3).toArray(new Byte[3]);

メソッドtoArray()リターンObject[]。ただし、メソッドtoArray(array)はパラメーターとして渡された配列を返します。この配列が十分な長さでない場合は、同じ型の他の配列を返します。

于 2012-10-26T15:25:52.400 に答える