1

ユーザー入力の文字列をintに変換しようとしています。問題ありません。次のコードを使用しています。

c = sc.next();
while(!c.contains("#")){
    i = Integer.parseInt(c);
    input.add(c);
    c= sc.next();
}

(これは変換を行うコードの一部であり、スキャナー部分が機能しています)

唯一の問題は、入力が 2 進数であるため、入力がたとえば "00111" の場合、変換によって "111" が返され、それらの 0 を失うことはありません。左のゼロを失うことなく、ユーザー入力を数値に変換するにはどうすればよいですか?

4

4 に答える 4

8

00111がそれと異なる場合111、整数として保存できない場合は、文字列として保存する必要があります。

ただし、バイナリであっても、0011121112に等しいことに注意してください。

バイナリリテラルを解析して整数に格納するには、次を使用します。

Integer.parseInt(c, 2);

(ただし、これは先行ゼロを保持する問題を解決しません。)

于 2012-05-09T13:46:58.297 に答える
3

次を使用する必要があります。

Integer.parseInt(c, 2)
于 2012-05-09T13:47:24.717 に答える
2

Integer.parseInt("00111", 2);

ただし、2進数(2)と10進数(10)を区別するには、基数を事前に知っておく必要があります。

それとも私はあなたの質問を理解していなかったのでしょうか?「0を失う」についてのあなたの発言は、理解するのが少し難しいです。

于 2012-05-09T13:47:15.253 に答える
0

バイナリ文字列 s の先頭のゼロを保持するには:

文字列から整数へ: 接頭辞として「1」を s に追加し、整数に変換します。

整数から文字列へ: 整数をバイナリ文字列に変換し、最初の "1" を削除します。

于 2015-09-01T14:17:46.873 に答える