我有一個字符串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