いつもお世話になっております。
503 → R 3
511 → R11
というように、1文字目の5はRに変換。
2文字目が0なら半角の空白に変換したいです。
ちなみに数字は全て半角、Rは大文字の半角です。
よろしくお願いします。
いつもお世話になっております。
503 → R 3
511 → R11
というように、1文字目の5はRに変換。
2文字目が0なら半角の空白に変換したいです。
ちなみに数字は全て半角、Rは大文字の半角です。
よろしくお願いします。
こんにちは
以下でいかがでしょうか?
"R"+Int32.Parse(yourString.Substring(1)).ToString().PadLeft(2)
いつも教えていただき本当にありがとうございます。
今回も無事解決できました。
恐縮ですが、新たに疑問がでてきたので教えていただけないでしょうか。
yourStringが503の場合
yourString.Substring(1)).ToString() この部分は03を取得するということですよね?
.ToString()の最後の()は何のためにあるのでしょうか。
また、ここが一番わからないのですが、
.PadLeft(2)は調べたところ ”指定された文字数になるまで左側に空白を埋め込む”とありました。
03の0が何故空白に変換されるのでしょうか。03はすでに2桁の数字ではないのでしょうか?
よろしくお願い申し上げます。
こんにちは
Int32.Parse(yourString.Substring(1)).ToString().PadLeft(2)
なので、分解していきます。まず中身の、yourString.Substring(1)
ですが、
0ベースの1文字目以降を返すので、例ですと03
が返ります。
Int32.Parse("03").ToString().PadLeft(2)
次にInt32.Parse("03")
なので、整数の3
が返ります。
3.ToString().PadLeft(2)
3をToString()で文字列にすると"3"
となり PadLeft(2)で " 3"
となります。
.ToString()の最後の()は何のためにあるのでしょうか。
ToStringメソッドですので、本来はあるべきものなのですが、VBは言語仕様上省略可能となっています。そのため、このケースも省略しても問題ありません。
ちなみにC#ですと省略は不可です。
こんなに詳細にご教示くださいましてありがとうございます。
Int32.Parseは、0埋めの場合は0埋め抜きで変換されることを知りませんでした。
また、ToStringメソッドの後ろには本来()があるということも知りませんでした。
とても勉強になりました。大変ありがとうございました。
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.