14

次のようにフォーマットされたMacアドレスがあり、次の0018103AB839ように表示したいと思います。00:18:10:3A:B8:39

私はこれをしようとしていstring.Formatますが、正確な構文を見つけることができません。

今私はこのようなことを試みています:

    string macaddress = 0018103AB839;
    string newformat = string.Format("{0:00:00:00:00:00:00}", macaddress);

これも可能ですか?または私は使用する必要がありますstring.Insertか?

4

3 に答える 3

13

文字列を再フォーマットして、MACアドレスとして表示します。

var macadres = "0018103AB839";

var regex = "(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})";
var replace = "$1:$2:$3:$4:$5:$6";
var newformat = Regex.Replace(macadres, regex, replace);    

// newformat = "00:18:10:3A:B8:39"

入力文字列を検証する場合は、次の正規表現を使用します(J0HNに感謝)。

var regex = String.Concat(Enumerable.Repeat("([a-fA-F0-9]{2})", 6));
于 2012-11-27T13:03:25.300 に答える
6
string input = "0018103AB839";

var output = string.Join(":", Enumerable.Range(0, 6)
    .Select(i => input.Substring(i * 2, 2)));
于 2012-11-27T13:16:59.280 に答える
5

Macアドレスがlongに保存されているとします。これは、フォーマットされた文字列でそれを持っている方法です:

ulong lMacAddr = 0x0018103AB839L;
string strMacAddr = String.Format("{0:X2}:{1:X2}:{2:X2}:{3:X2}:{4:X2}:{5:X2}",
    (lMacAddr >> (8 * 5)) & 0xff, 
    (lMacAddr >> (8 * 4)) & 0xff,
    (lMacAddr >> (8 * 3)) & 0xff,
    (lMacAddr >> (8 * 2)) & 0xff,
    (lMacAddr >> (8 * 1)) & 0xff,
    (lMacAddr >> (8 * 0)) & 0xff);
于 2012-11-27T13:05:01.297 に答える