如何在JAVA中将字符串转换为整数数组并返回

如何在JAVA中将字符串转换为整数数组并返回,java,string,serialization,integer,Java,String,Serialization,Integer,我想将字符串反序列化为int[]数组并返回。我试试这样的 public static int[] getIntArrayFromString(String string, int stringMaxLenght) { byte[] bytes = string.getBytes(); int rest = bytes.length % 4; int times = (bytes.length - rest) / 4; int[] result

我想将字符串反序列化为int[]数组并返回。我试试这样的

public static int[] getIntArrayFromString(String string, int stringMaxLenght) {
    byte[] bytes = string.getBytes();   

    int rest = bytes.length % 4;
    int times = (bytes.length - rest) / 4;      

    int[] result = new int[stringMaxLenght];
    int maxIndex = 0;
    for (int i = 0; i < times; i++) {
        if (times > stringMaxLenght)
            break;
        int in = createIntFromBytes(bytes[i * 4 + 0], bytes[i * 4 + 1], bytes[i * 4 + 2],
                bytes[i * 4 + 3]);
        result[i] = in;
        maxIndex = i;
    }
    byte[] restb = new byte[4];
    for (int i = 0; i < rest; i++) {
        restb[i] = bytes[(maxIndex + 1 * 4) + i];
    }

    if (times < stringMaxLenght) {
        int lastInt = createIntFromBytes(restb);
        result[maxIndex + 1] = lastInt;
    }
    return result;
}

public static int createIntFromBytes(byte byte0, byte byte1, byte byte2, byte byte3) {
    byte[] byteArray = new byte[4];
    byteArray[0] = byte0;
    byteArray[1] = byte1;
    byteArray[2] = byte2;
    byteArray[3] = byte3;
    return createIntFromBytes(byteArray);
}

public static String getStringFromIntegerArray(int[] intArray) {        
    ByteBuffer buffer = ByteBuffer.allocate(intArray.length * 4);
    for (int integer : intArray) {
        byte[] bs = createBytesFromInt(integer);
        buffer.put(bs);
    }
    return getStringFromBytes(buffer.array());
}

public static int createIntFromBytes(byte[] bytes) {
    return ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN).getInt();
}

public static String getStringFromBytes(byte[] bytes) {
    String string = new String(bytes);
    return string.trim();// otherwise it creates string with empty chars
}
public static int[]getIntArrayFromString(字符串字符串,int-StringMaxLength){
byte[]bytes=string.getBytes();
int rest=bytes.length%4;
整数倍=(bytes.length-rest)/4;
int[]结果=新的int[StringMaxLength];
int maxIndex=0;
for(int i=0;i字符串最大长度)
打破
int in=createIntFromBytes(字节[i*4+0],字节[i*4+1],字节[i*4+2],
字节[i*4+3]);
结果[i]=in;
maxIndex=i;
}
字节[]restb=新字节[4];
for(int i=0;i
但对于字符串“Signature”,它似乎不起作用。你知道我做错了什么,或者应该如何做得更好吗

How to convert String to Integer array and back in JAVA
虽然我不清楚您问题的内容,但假设您想知道是否有内置函数可用,要将
int
数组转换为字符串,您可以使用
数组。toString
函数,例如:

  String strArr = Arrays.toString(new int[]{112, 12 ,13});
  System.out.println(strArr);
它将创建以下类型的输出格式:

  [112, 12, 13]
虽然我不清楚您问题的内容,但假设您想知道是否有内置函数可用,要将
int
数组转换为字符串,您可以使用
数组。toString
函数,例如:

  String strArr = Arrays.toString(new int[]{112, 12 ,13});
  System.out.println(strArr);
它将创建以下类型的输出格式:

  [112, 12, 13]
虽然我不清楚您问题的内容,但假设您想知道是否有内置函数可用,要将
int
数组转换为字符串,您可以使用
数组。toString
函数,例如:

  String strArr = Arrays.toString(new int[]{112, 12 ,13});
  System.out.println(strArr);
它将创建以下类型的输出格式:

  [112, 12, 13]
虽然我不清楚您问题的内容,但假设您想知道是否有内置函数可用,要将
int
数组转换为字符串,您可以使用
数组。toString
函数,例如:

  String strArr = Arrays.toString(new int[]{112, 12 ,13});
  System.out.println(strArr);
它将创建以下类型的输出格式:

  [112, 12, 13]
publicstaticvoidmain(字符串[]args){
int[]检验={1,2,3,4,5,6,7,8};
//从int[]到String
字符串输入=Arrays.toString(测试);
//试验
系统输出打印项次(输入);
//字符串返回到int[]
测试=到阵列(输入);
//试验
输入=Arrays.toString(测试);
系统输出打印项次(输入);
}
公共静态int[]到数组(字符串输入){
String beforeSplit=input.replaceAll(“\\[\\]\\\\\\\s”,”);
String[]split=beforeplit.split(“\\,”);
int[]结果=新int[split.length];
对于(int i=0;i
结果:

[1,2,3,4,5,6,7,8]

[1,2,3,4,5,6,7,8]

公共静态void main(字符串[]args){
int[]检验={1,2,3,4,5,6,7,8};
//从int[]到String
字符串输入=Arrays.toString(测试);
//试验
系统输出打印项次(输入);
//字符串返回到int[]
测试=到阵列(输入);
//试验
输入=Arrays.toString(测试);
系统输出打印项次(输入);
}
公共静态int[]到数组(字符串输入){
String beforeSplit=input.replaceAll(“\\[\\]\\\\\\\s”,”);
String[]split=beforeplit.split(“\\,”);
int[]结果=新int[split.length];
对于(int i=0;i
结果:

[1,2,3,4,5,6,7,8]

[1,2,3,4,5,6,7,8]

公共静态void main(字符串[]args){
int[]检验={1,2,3,4,5,6,7,8};
//从int[]到String
字符串输入=Arrays.toString(测试);
//试验
系统输出打印项次(输入);
//字符串返回到int[]
测试=到阵列(输入);
//试验
输入=Arrays.toString(测试);
系统输出打印项次(输入);
}
公共静态int[]到数组(字符串输入){
String beforeSplit=input.replaceAll(“\\[\\]\\\\\\\s”,”);
String[]split=beforeplit.split(“\\,”);
int[]结果=新int[split.length];
对于(int i=0;i
结果:

[1,2,3,4,5,6,7,8]

[1,2,3,4,5,6,7,8]

公共静态void main(字符串[]args){
int[]检验={1,2,3,4,5,6,7,8};
//从int[]到String
字符串输入=Arrays.toString(测试);
//试验
系统输出打印项次(输入);
//字符串返回到int[]
测试=到阵列(输入);
//试验
输入=Arrays.toString(测试);
系统输出打印项次(输入);
}
公共静态int[]到数组(字符串输入){
String beforeSplit=input.replaceAll(“\\[\\]\\\\\\\s”,”);
String[]split=beforeplit.split(“\\,”);
int[]结果=新int[split.length];
对于(int i=0;i