在Byte 中创建后检索我的号码

我希望在Byte []之后检索一个基本数字

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

}

在Byte []中创建后检索我的号码?

我认为你使用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); 

Byte[]不是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 ,它是hex302E3131的十进制表示302E3131 (字符零,点,一,一的UTF-8字节)。

重写这一行:

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

如下:

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

方法toArray()返回Object[] 。 但是,方法toArray(array)返回作为参数传递给它的数组,或者,如果此数组不够长,则返回相同类型的其他数组。

字节[] t = s1.subList(0,3).toArray(new Byte [3]); 然后,看看这个BigInteger构造函数public BigInteger(byte [] val)

然后,使用: int intValue();