在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();