【问题标题】:Take all characters after separator symbol after 5th sign取第 5 个符号后分隔符后的所有字符
【发布时间】:2020-01-28 00:30:41
【问题描述】:

我有以下几点:

string test = "200| Άρχισε ξανά| Start again| test | test? |201,202,203,204 |list | picture]"

如何将所有字符都放在第 5 个“|”的右侧所以 201,202,203,204 |列表 |图片。字符数总是不同的。

如何用 c# 做到这一点?

我正在尝试

line.Substring(line.LastIndexOf('|') -3)

但结果是 "| picture" 。 我也尝试 line.Split["|"] 但这也不起作用,因为我只想要第 5 个 "|" 之后的所有内容。

【问题讨论】:

  • 这篇文章没有显示任何研究或努力。
  • @dfundako 现在呢?我已经更新了问题
  • ...this is not working because I just want everything else after 5th "|" 您知道拆分后可以将最后三个元素粘合在一起,对吧?
  • string[] data = test.Split(new char[] { '|' }).Skip(5).ToArray();

标签: c# split substring


【解决方案1】:

您可以使用Split'|'字符上拆分字符串,然后使用System.Linq扩展方法Skip跳过第一个5结果,最后string.Join将其余部分连接在一起再次使用'|' 字符加入他们:

string result = string.Join("|", test.Split('|').Skip(5));

【讨论】:

    【解决方案2】:

    你可以用这个:

    string test = "200| Άρχισε ξανά| Start again| test | test? |201,202,203,204 |list | picture]";
    
    int pos = -1;
    
    for ( int i = 1; i <= 5; i++)
    {
      pos = test.IndexOf('|', pos + 1);
      if ( pos == -1 )
        break;
    }
    
    string result = "";
    
    if ( pos != -1 )
      result = test.Substring(pos + 1).Trim();
    
    Console.WriteLine(result);
    
    Console.ReadKey();
    

    或者使用@RufusL linq 版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      相关资源
      最近更新 更多