2

Java プログラムのヘルプが必要です。

整数を含む文字列を取り、それをよりコンパクトなストレージ形式、つまりファイルに出力されるいくつかのオクテット文字に変換しようとしています。ファイルが読み取られると、文字を取得し、それらの値を組み合わせて元の int を取得できるはずです。これを行う方法はありますか?それとも私は何かを誤解していますか?

4

5 に答える 5

1

を使用しInteger.toOctalString(Integer.parseInt([String Value]))ます。これにより、8進数の文字列が得られます。整数を取り戻すには、次を使用しますInteger.parseInt([Octal string],8);

于 2013-03-04T18:36:45.697 に答える
0

あなたが使うことができます

public static String toHexString(int i)

 public static int parseInt(String s, int radix)

文字列を16進数に「圧縮」する方法として、基数16を使用します。

または、ファイルが2進数の場合は、整数自体にシリアル化メソッドを使用することもできます。

于 2013-03-04T18:36:02.463 に答える
0

試す

Integer.valueOf(yourstring)
于 2013-03-04T18:31:19.583 に答える
0

文字列を int に変換するには

int i = Integer.parseInt(String)

ファイルに保存する最もコンパクトな方法intはバイナリ表現です

java.io.DataOutputStream.writeInt(i);

として読み返します

int i = java.io.DataInputStream.readInt();
于 2013-03-04T18:42:31.433 に答える
0

したがって、「12345」のような int を実際に含む文字列があり、それをファイルにコンパクトに書きたいとします。

まず、文字列を 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]
  }
}
于 2013-03-04T18:45:14.160 に答える