【问题标题】:How to delete words between specified chars?如何删除指定字符之间的单词?
【发布时间】:2012-06-28 03:10:44
【问题描述】:

我想创建一个从文件中读取每一行的方法。接下来,它必须检查管道之间并确定是否存在长度超过三个字符的单词,并且只是数字。文件中的字符串是这样组织的:

发生了什么事{noway|that's cool|1293328|why|don't know|see}

有了这句话,软件应该去掉1293328。

得到的句子是:

发生了什么事{noway|that's cool|不知道}

到目前为止,我正在读取文件中的每一行,并制作了确定 | 之间的单词是否存在的函数。 |是否必须删除(检查一个字符串,比如 noway,这很酷,等等)

我不知道如何让管道之间的字符串。

【问题讨论】:

  • 听起来像是功课。你试过什么?正则表达式? .Split(new[]{'|')?
  • 3.3应该如何处理?
  • 不,这不是家庭作业。没有尝试过正则表达式拆分,我确定 3.3 (float) 不会出现在任何行:)

标签: c# .net


【解决方案1】:

您可以使用 Split 方法按字符拆分字符串。

string YourStringVariable = "{noway|that's cool|1293328|why|don't know|see}";

YourStringVariable.Split('|');  //Returns an array of the strings between the brackets

【讨论】:

【解决方案2】:

关于:

string RemoveValues(string sentence, string[] values){

   foreach(string s in values){
      while(sentence.IndexOf("|" + s) != -1 && sentence.IndexOf("|" + s) != 0){
         sentence = sentence.Remove(sentence.IndexOf("|" + s), s.Lenght + 1);
      }
   }

   return sentence;
}

在你的情况下:

string[] values = new string[3]{ "1293328", "why", "see" };
string sentence = RemoveValues("noway|that's cool|1293328|why|don't know|see", values);
//result: noway|that's cool|don't know

【讨论】:

    【解决方案3】:
            string YourStringVariable = "{noway|that's cool|1293328|why|don't know|see}";
            string[] SplitValue=g.Split('|');
            string FinalValue = string.Empty;
            for (int i = 0; i < SplitValue.Length; i++)
            {
                if (!SplitValue[i].ToString().Any(char.IsDigit))
                {
                    FinalValue += SplitValue[i]+"|";    
    
                }
    
            }
    

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 2021-11-20
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      相关资源
      最近更新 更多