【问题标题】:C# How can i split strings? [duplicate]C#如何拆分字符串? [复制]
【发布时间】:2017-07-07 05:47:35
【问题描述】:

有一个文件包含一些字符串,我要编写一个 C# 表单项目。我需要将它们拆分为“:”,拆分标签后会显示拆分的字符串。

这是我应该拆分的文本

1096:001:161208:092218:1935:001:H:101:0006:                :00+00000+000000001
1096:001:161208:092218:1935:002:w:100:0006:                :00:00000:00000000R
1096:001:161208:092218:1935:003:S:101:0508:   2416100000006+00010010*000000140
1096:001:161208:092221:1935:004:S:101:0501:   8691397181056+00010010*000000250
1096:001:161208:092228:1935:005:l:100:0000:LCS SUCCESS     :00000000+000000000
1096:001:161208:092231:1935:006:T:110:0006:                :01+00001+000002000
1096:001:161208:092231:1935:007:T:114:0006:                :01+00000-000001610
1096:001:161208:092231:1935:008:V:111:0006:          %1    :00+00001+000000248
1096:001:161208:092231:1935:009:V:110:0006:          %1    :00+00001+000000002
1096:001:161208:092231:1935:010:V:121:0006:          %8    :00+00001+000000130
1096:001:161208:092231:1935:011:V:120:0006:          %8    :00+00001+000000010
1096:001:161208:092231:1935:012:w:100:0006:                :00:00000:00000000R
1096:001:161208:092231:1935:013:q:100:0000:                :000000000000000000
1096:001:161208:092231:1935:014:F:100:0006:                :00+00002+000000390
FIS :001:161208:092231:1935:015: :100:0006:TN 13091080     :00+01178+000000390

软件会从一个txt文件中导入这些数据,然后将所有的“:”拆分,并写入表单中的标签。

应该是这样的:

Label1=1096 Label2=001 Label3=161208 Label4=092218 Label5=1935 Label6=001
Label7=H Label8=101 Label9=0006 Label10=00 Label11=00000 Label12=000000001

它还应该总结 %1 %1 %8 %8 个位于 Label13 中“:”之间的空格

【问题讨论】:

  • 友情提示:编辑您的帖子,插入您尝试解决上述问题的任何代码示例(即使它不起作用),否则在没有提供任何线索的情况下脱离主题。
  • 请说明您尝试了什么,您面临的具体问题是什么?现在看来你要求我们做你的工作;)
  • 您的示例输出看起来更像是您想按':''+' 拆分。任何其他所需的拆分符号?
  • 你的问题本质上是一组要求How to Ask

标签: c# string split


【解决方案1】:

String.Split()

虽然我感觉你甚至没有尝试用谷歌搜索你的问题,也不知道如何编写任何代码(String.Split 非常简单),但这里有一些代码可以帮助你入门:

            string source = @"
1096:001:161208:092218:1935:001:H:101:0006:                :00+00000+000000001
1096:001:161208:092218:1935:002:w:100:0006:                :00:00000:00000000R
1096:001:161208:092218:1935:003:S:101:0508:   2416100000006+00010010*000000140
1096:001:161208:092221:1935:004:S:101:0501:   8691397181056+00010010*000000250
1096:001:161208:092228:1935:005:l:100:0000:LCS SUCCESS     :00000000+000000000
1096:001:161208:092231:1935:006:T:110:0006:                :01+00001+000002000
1096:001:161208:092231:1935:007:T:114:0006:                :01+00000-000001610
1096:001:161208:092231:1935:008:V:111:0006:          %1    :00+00001+000000248
1096:001:161208:092231:1935:009:V:110:0006:          %1    :00+00001+000000002
1096:001:161208:092231:1935:010:V:121:0006:          %8    :00+00001+000000130
1096:001:161208:092231:1935:011:V:120:0006:          %8    :00+00001+000000010
1096:001:161208:092231:1935:012:w:100:0006:                :00:00000:00000000R
1096:001:161208:092231:1935:013:q:100:0000:                :000000000000000000
1096:001:161208:092231:1935:014:F:100:0006:                :00+00002+000000390
FIS :001:161208:092231:1935:015: :100:0006:TN 13091080     :00+01178+000000390            
            ";
            string[] lines = source.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            foreach(string line in lines) {
                string[] values = line.Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries);
                int counter = 1;
                foreach(string value in values) {
                    Console.Write("Label" + counter + ": " + value + "   ");
                    counter++;
                }
                Console.WriteLine("-");
            }

            Console.ReadLine();

只需启动一个新的控制台项目并将其粘贴到Main()。剩下的就看你自己了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-18
    • 2020-01-19
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    相关资源
    最近更新 更多