将String形式的整数转换为char八位字节

时间:2013-03-04 18:29:46

标签: java encoding ascii

我需要一些Java程序的帮助。

我正在尝试获取包含整数的String并将其转换为更紧凑的存储格式,即将打印到文件中的几个八位字节字符。当读取文件时,它应该能够获取字符并组合它们的值以获得原始的int。有没有办法做到这一点?或者我误解了什么?

5 个答案:

答案 0 :(得分:1)

使用Integer.toOctalString(Integer.parseInt([String Value]))。这将为您提供八进制字符串。 要获取整数,请使用Integer.parseInt([Octal string],8);

答案 1 :(得分:0)

尝试

Integer.valueOf(yourstring)

答案 2 :(得分:0)

您可以使用

public static String toHexString(int i)

 public static int parseInt(String s, int radix)

以16的基数作为将字符串“压缩”为十六进制的方式。

或者,如果文件是二进制文件,则可以对整数本身使用序列化方法。

答案 3 :(得分:0)

将字符串转换为int使用

int i = Integer.parseInt(String)

int保存到文件的最紧凑方式是二进制表示

java.io.DataOutputStream.writeInt(i);

将其读回

int i = java.io.DataInputStream.readInt();

答案 4 :(得分:0)

所以你有一个真正包含int的字符串" 12345"并且你想在文件中紧凑地编写它。

首先,将字符串转换为int:

int value = Integer.valueOf(string);

然后您将其转换为带有ByteBuffer的字节数组:

ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(value);
byte[] result = b.array();

或者您只需将其写在文件中:

FileOutputStream fos = new FileOutputStream(f);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeInt(value);

修改:由于您仍然遇到困难,以下是一个完整的示例:

public class Snippet {

  public static void main(String[] args) {
    int value = Integer.parseInt("1234567890");

    ByteBuffer b = ByteBuffer.allocate(4);
    b.putInt(value);
    byte[] result = b.array();

    System.out.println(result.length);  // 4
    System.out.println(Arrays.toString(result)); // [73, -106, 2, -46]
  }
}