【问题标题】:How to split a string at the last '.' value如何在最后一个 '.' 处拆分字符串价值
【发布时间】:2013-04-25 04:00:38
【问题描述】:

我有一个类似的字符串

    string str = "123.1.1.QWE";
    string[] seqNum = textBox1.Text.Split('.');

我想在最后分割字符串。 value 并且必须拆分为两个字符串,例如

seqNum[0]="123.1.1";
seqNum[1]="QWE";

如何在最后一个索引处将其拆分为两个字符串。

提前致谢。

【问题讨论】:

  • 如果这个字符串遵循文件名语义,你试过System.IO.Path静态方法GetExtension()GetFileNameWithoutExtension()吗?

标签: c# string split


【解决方案1】:
string str = "123.1.1.QWE";    
int index = str.LastIndexOf(".");
string[] seqNum = new string[] {str.Substring(0, index), str.Substring(index + 1)};

【讨论】:

  • 看起来不错。不过也可以这样做,基本相同,但语法稍微简单一些:string[] seqNum = new[] {str.Take(index), str.Skip(index + 1)};
  • @Curiousity 这仅在 OP 想要拆分字符串的最后一部分时才有效,事实并非如此。
【解决方案2】:
            string str = "123.1.1.QWE";
            string[] seqnum = new string[2];
            foreach (char ch in str)
            {
                if (char.IsNumber(ch) || ch == '.')
                {

                }
                else
                {
                    int indx = str.IndexOf(ch);
                    seqnum[0] =  str.Substring(0, indx).ToString();
                    seqnum[1] =  str.Substring(indx,str.Length-indx).ToString();
                    break;
                }
            }


         // output
        //  seqnum[0]=123.1.1.
        //  seqnum[1]=QWE

【讨论】:

  • 这会将字符串拆分 3 次。人们是否只是试图用最糟糕的分割字符串的方式来回答这个问题?
猜你喜欢
  • 2017-04-23
  • 2022-01-19
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多