我有一个字符串4(4X),4(4N),3(3X)
从这个字符串我想使字符串4,4,3
。如果我得到字符串4(4N),3(3A),2(2X)
那么我想让我的字符串4,3,2
。如何从字符串中删除特殊字符并创建新字符串?
请有人告诉我如何解决我的问题。
我有一个字符串4(4X),4(4N),3(3X)
从这个字符串我想使字符串4,4,3
。如果我得到字符串4(4N),3(3A),2(2X)
那么我想让我的字符串4,3,2
。如何从字符串中删除特殊字符并创建新字符串?
请有人告诉我如何解决我的问题。
这Linq查询从输入字符串的每个部分选择子,从开头开始直到第一个开括号:
string input = "4(4N),3(3A),2(2X)";
string result = String.Join(",", input.Split(',')
.Select(s => s.Substring(0, s.IndexOf('('))));
// 4,3,2
+1比我的回答好得多 – 2013-03-26 06:47:00
@HseseinNarimaniRad谢谢!好吧,也许不是更好,但更紧凑:) – 2013-03-26 06:47:52
谢谢所有人,我用@lazyberezovsky例子它的工作对我很好 – Rocky 2013-03-26 07:06:53
这可能会帮助:
string inputString = "4(4X),4(4N),3(3X)";
string[] temp = inputString.Split(',');
List<string> result = new List<string>();
foreach (string item in temp)
{
result.Add(item.Split('(')[0]);
}
var whatYouNeed = string.Join(",", result);
我想你会在这部分出错'var whatYouNeed = string.Join(“,”,result);' – Pyromancer 2013-03-26 06:52:50
我试过了。没有错误被抛出。 – 2013-03-26 06:53:46
是的,我试过了,它没有错误!我以为它会得到一个错误,因为'String.Join(** String Separator **,** String [] Value **);' – Pyromancer 2013-03-26 06:56:59
您可以使用regular expressions
String input = @"4(4X),4(4N),3(3X)";
String pattern = @"(\d)\(\1.\)";
// () - first group.
// \d - one number
// \(and \) - braces.
// \1 - means the repeat of first group.
String result = Regex.Replace(input, pattern, "$1");
// $1 means, that founded patterns will be replcaed by first group
//result = 4,4,3
如果字符串是'4(4),3(42),2(x)'? – 2013-03-26 06:41:25
我分割字符串和使用。删除特殊字符,但没有得到正确的字符串 – Rocky 2013-03-26 06:42:30
我不会创建像这样的字符串4(4),3(42),2(x),总是我会得到字符串,因为我已经显示 – Rocky 2013-03-26 06:43:24