2

整数を3文字のASCII文字列に変換したい。たとえば、整数が123の場合、ASCII文字列も。になります"123"。整数が1の場合、ASCIIはになります"001"。整数が45の場合、ASCII文字列はになります"045"。これまで試しましConvert.ToStringたが、結果が得られませんでした。どのように?

4

3 に答える 3

10
int myInt = 52;
string myString = myInt.ToString("000");

myStringは「052」になりました。それが役立つことを願っています

于 2012-07-30T05:51:30.433 に答える
5

新しい質問への回答:

あなたが探してString.PadLeftいる。のように使用しmyInteger.ToString().PadLeft(3, '0')ます。または、"0"カスタムフォーマット指定子を使用するだけです。のようにmyInteger.ToString("000")


元の質問に答えて、次のような文字列を返します"0x31 0x32 0x33"

String.Join(" ",myInteger.ToString().PadLeft(3,'0').Select(x=>String.Format("0x{0:X}",(int)x))

説明:

  • 1つ目ToString()は、整数123を文字列表現に変換します"123"
  • PadLeft(3,'0')0パディング文字としてaを使用して、返された文字列を3文字にパディングします
  • 文字列はの配列として列挙できるcharため、.Selectこの配列に選択します
  • 配列内の文字ごと0xに、文字の値としてフォーマットします
  • chartoをキャストするintと、ASCII値を取得できるようになります(このキャストをスキップできる場合がありますが、わかりません)。
  • 「X」フォーマット文字列は、数値を16進数に変換します
  • String.Join(" ", ...)間にスペースを入れて、すべてを元に戻します
于 2012-07-30T05:37:51.117 に答える
5

実際にASCII文字が必要か、テキストが必要かによって異なります。以下のコードは両方を実行します。

int value = 123;
// Convert value to text, adding leading zeroes.
string text = value.ToString().PadLeft(3, '0');
// Convert text to ASCII.
byte[] ascii = Encoding.ASCII.GetBytes(text);

.Netはテキスト操作にASCIIを使用しないことに注意してください。ASCIIをファイルに保存できますが、stringオブジェクトを使用している場合、それらはUTF-16でエンコードされます。

于 2012-07-30T05:48:43.183 に答える