整数を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
に、文字の値としてフォーマットします char
toをキャストする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 に答える