【问题标题】:C# how to pick out certain part in a stringC#如何选择字符串中的某个部分
【发布时间】:2012-12-13 15:52:11
【问题描述】:

我在蒙版文本框中有一个字符串,如下所示:

123.456.789.abc.def.ghi

"---.---.---.---.---.---"  (masked TextBox format when empty, cannot use underscore X(  )

请忽略字符的值(它们可以重复,并且不像上面那样唯一)。我怎样才能挑选出部分字符串,比如“789”? String.Remove() 不起作用,因为它会删除索引后的所有内容。

【问题讨论】:

  • 你如何识别那部分?
  • 您能否更具体地说明“挑出”字符串的一部分的含义。你只是想删除它吗?如果你只是想从你的字符串中删除一个子字符串,你可以这样做:myString = myString.Replace("789", "");
  • 我认为pick outextracting

标签: c# string methods


【解决方案1】:

如果. 始终包含在您的字符串中,您可以使用Split 来分隔您的值。

string input = "123.456.789.abc.def";

string[] mySplitString = input.Split('.');

for (int i = 0; i < mySplitString.Length; i++)
{
    // Do you search part here
}

【讨论】:

    【解决方案2】:

    你的意思是你想获得那部分字符串?如果是这样,您可以使用string.Split

    string s = "123.456.789.abc.def.ghi";
    var splitString = s.Split('.');
    // splitString[2] will return "789"
    

    【讨论】:

    • 谢谢大家,String.Split() 正是我需要的。非常感谢。谢谢博库普。 Domo arigato gozaimashita。
    【解决方案3】:

    您可以简单地使用String.Split(如果字符串实际上是您所显示的)

    string str = "123.456.789.abc.def.ghi";
    string[] parts = str.Split('.');
    string third = parts.ElementAtOrDefault(2); // zero based index
    if(third != null)
        Console.Write(third);
    

    我刚刚使用了Enumerable.ElementAtOrDefault,因为如果集合中没有这样的索引,它会返回 null 而不是异常(它回退到parts[2])。

    【讨论】:

      【解决方案4】:

      查找字符串:

      string str="123.456.789.abc.def.ghi";
      int i = str.IndexOf("789");
      string subStr = str.Substring(i,3);
      

      替换子字符串:

        str = str.Replace("789","").Replace("..",".");
      

      正则表达式:

        str = Regex.Replace(str,"789","");
      

      正则表达式可以给你很大的灵活性,用最少的代码找到东西,缺点是可能很难写

      【讨论】:

        【解决方案5】:

        如果您知道子字符串开始位置的索引和长度,您可以使用String.Substring()。这将为您提供子字符串:

        String myString = "123.456.789";
        // looking for "789", which starts at index 8 and is length 3
        String smallString = myString.Substring(8, 3);
        

        如果您尝试删除字符串的特定部分,请使用String.Replace()

        String myString = "123.456.789";
        String smallString = myString.Replace("789", "");
        

        【讨论】:

          【解决方案6】:

          var newstr = new String(str.where(c => "789")).tostring();..我想这会起作用,或者你可以像这样使用 sumthng

          【讨论】:

            【解决方案7】:

            尝试使用Replace

            String.Replace("789", "")
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-04-15
              • 2014-03-12
              • 1970-01-01
              • 2021-05-20
              • 1970-01-01
              • 2023-03-09
              • 2011-08-17
              • 1970-01-01
              相关资源
              最近更新 更多