2016-04-29 75 views
2

可以说独立的子字符串中我有字符串数组C#

{"Item Revision","Integer Item Revision","Double Item Revision"}

而我只是想排除"revision"部分字符串。

可以说如果我有"Integer Item Revision"字符串,那么我只想"Integer Item"。这里的"Revision"部分是所有字符串的常见部分。有没有解决方案?

+0

'string.Replace' – Rob

+0

是 “修正” 是不变的?或者你是第一次寻找哪个词很常见? – codetoshare

+0

@codetoshare是的,你可以说“修订”是不变的部分 –

回答

3

一个例子拨弄。 https://dotnetfiddle.net/vwJBkn

如果你确切地知道你想要删除的字符串,那么使用string.replace就可以工作。

string[] array = new[] {"Item Revision","Integer Item Revision","Double Item Revision"}; 
    foreach (string i in array) 
    { 
//Replace console.writeline with your code. 
     Console.WriteLine (i.Replace("Revision", String.Empty)); 
    } 
+0

你应该在答案中发布相关部分的代码,以防万一dotnetfiddle关闭或消失 – Jcl

+0

谢谢。那是一个好主意。说实话,我自己更新了同一个小提琴,不得不重做一遍。 – jitendragarg

4
var result = "Item Revision".Replace(" Revision", ""); 

这将剥离“修订”和领先的空间。

+0

重点是如何找到“修订”< - 这个字符串。 – David

+1

@大卫在任何时候都没有要求“发现”它。 OP写道:“我只想排除字符串的”修订“部分”。可能是 – Yatrix

+0

。但我只是好奇,如果有一个简单的单行解决方案来找到这个文字字符串? :) – David

7
var array = new[] {"Item Revision","Integer Item Revision","Double Item Revision"}; 

array = array.Select(o=>o.Replace("Revision",string.Empty).Trim()).ToArray(); 

OR

var array = new[] {"Item Revision NotRevision"}; 
Regex rgx = new Regex(@"\bRevision\b"); 
array = array.Select(o=>rgx.Replace(o,string.Empty).Trim()).ToArray(); 
+0

你如何找到相交字符串“修订”?这可能是动态的,而不是固定的字符串。 – David

+0

@David从提问的人那里读取评论。它是固定的。 – jitendragarg

+0

@David更复杂的案例 - 围绕单词 – Backs

4

可以使用:

String[] s = { "Item Revision", "Integer Item Revision", "Double Item Revision" }; 
      String[] tmp = new String[s.Length]; 
      for (int i = 0; i < s.Length; i++) 
      { 
       tmp[i] = s[i].Replace("Revision", ""); 
      } 
+0

您可以简单地在那里更新主阵列。 :) – jitendragarg

+0

是的,我们可以更新原始数组。我只想保留原始值,所以我创建了一个tmp数组。谢谢。 –