-4

シリアルとして使用される文字列があり、現在は次の形式になっています。

XXX1XXX2XXX3XXX4

次のようにフォーマットしたいと思います:

XXX1-XXX2-XXX3-XXX4

これどうやってするの?

4

5 に答える 5

2

試しましたstring.insertか?

MSDN: String.Insert メソッド

それを使って何らかのロジックを作成できると確信しています。

于 2012-10-25T11:14:07.933 に答える
1

これを行う方法はたくさんあります。:)

ここにさらに別のものがあります:

string s = "XXX1XXX2XXX3XXX4";
StringBuilder sb = new StringBuilder();

for (int i = 0; i < s.Length; ++i)
{
    sb.Append(s[i]);

    if ((i < s.Length-1) && ((i+1) % 4) == 0)
    {
        sb.Append('-');
    }
}

s = sb.ToString();
Console.WriteLine(s);
于 2012-10-25T11:24:33.287 に答える
0
string str="0123567236359783590203582835";
 str.ToCharArray()
 .Aggregate("",
 (result, c) => result += ((!string.IsNullOrEmpty(result) && (result.Length+1) % 5 == 0)
                              ? "-" : "")
                             + c.ToString()
 );


// --> 0123-5672-3635-9783-5902-0358-2835
于 2012-10-25T11:20:45.207 に答える
0
StringBuilder init = new StringBuilder("XXX1XXX2XXX3XXX4");

string insertVal = "-";

for(int i=4, i<init.length;i=i+5)
{
    init.insert(i, inserVal, 1);
}
于 2012-10-25T11:21:57.127 に答える
0

次のように使用Linqしてみてください...

    var s = "XXX1XXX2XXX3XXX4xx5x";
    var list = Enumerable
        .Range(0, s.Length/4)
        .Select(i => s.Substring(i*4, 4))
        .ToList();
    var res = string.Join("-", list);
    Console.WriteLine("{0}",res);
于 2012-10-25T11:23:58.103 に答える