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