相关疑难解决方法(0)

java整数到字节,以及字节到整数

我知道 - 在Java-int中是4个字节.但我希望将int转换为n字节数组,其中n可以是1,2,3或4个字节.我想把它作为有符号的字节/字节,所以如果我需要将它们转换回int(事件,如果它是1个字节),我得到相同的signed int.我完全清楚从int转换为3或更低字节时精度损失的可能性.

我设法将int转换为n字节,但将其转换回负数会产生无符号结果.

编辑:

int到bytes(参数n指定所需的字节数1,2,3或4,无论可能的进动丢失)

public static byte[] intToBytes(int x, int n) {
    byte[] bytes = new byte[n];
    for (int i = 0; i < n; i++, x >>>= 8)
        bytes[i] = (byte) (x & 0xFF);
    return bytes;
}
Run Code Online (Sandbox Code Playgroud)

bytes到int(不管1,2,3或4的字节数)

public static int bytesToInt(byte[] x) {
    int value = 0;
    for(int i = 0; i < x.length; i++)
        value += ((long) x[i] & 0xffL) << (8 * i);
    return value;
}
Run Code Online (Sandbox Code Playgroud)

字节到int转换器可能存在问题.

java int byte

5
推荐指数
2
解决办法
3万
查看次数

无法通过java split()方法从字符串中获取数字

我有这个代码,它采用格式为255.255.255.255的IP地址(字符串),并需要对这些数字(此处未发布)执行一些后处理,但必须将字符串转换为整数数组.

我在这里使用了split()方法,但它没有给我结果.我在sp上做了正则表达式的其他答案,但没有一个对我有效.

import java.util.Scanner;
public class Main{
    public static void main(String args[]){
        String text;

        Scanner take=new Scanner(System.in);
        text=take.nextLine();
        String data[]=text.split(".",4);

        for(String w:data){
            System.out.println(w);
        }
        take.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

我已尝试输入12.36.26.25

但它输出36.26.25,应该是12 36 26 25

java array-algorithms

3
推荐指数
1
解决办法
106
查看次数

标签 统计

java ×2

array-algorithms ×1

byte ×1

int ×1