2011-06-14 143 views
1

我有以下字符串:尋找在C#從另一個提取拖字符串最簡單的方法

string a = "1. testdata"; 
string b = "12. testdata xxx"; 

我想什麼是能夠提取數成一個字符串和字符後的數字進入另一個。我嘗試使用.IndexOf(「。」),然後刪除,修剪和子字符串。如果可能的話,我想找到更簡單的東西,因爲我的代碼很多部分都是在 中做的。

+0

*「正如我在我的代碼的很多部分所做的那樣」* - 爲什麼不把它包裝在一個函數中? – Tomalak 2011-06-14 06:32:17

回答

1

提出的解決方案至今都是不正確的。 首先,在分割('。')或分割(「。」)之後,第二個子串的開始處會有空格。其次,如果你有不止一個點 - 你必須在分割之後做一些事情。

更健壯的解決方案是如下:

string a = "11. Test string. With dots."; 
var res = a.Split(new[] {". "}, 2, StringSplitOptions.None); 
string number = res[0]; 
string val = res[1]; 

參數2指定的字符串,返回的最大數量。因此,當你有幾個點時 - 它只會在第一個點進行分割。

+0

拆分字符串應該可以分配給Char - >所以應該是「。」而不是「。」 - 不是嗎? – ub1k 2011-06-14 06:46:50

+0

不是。有超負荷將string []作爲第一參數。這就是爲什麼這個版本在val中沒有領先空間的問題。你可以嘗試自己運行 - 這是真的有用:) – 2011-06-14 06:49:36

4

如果格式總是一樣的,你可以這樣做:

a.Split('.'); 
+1

請注意,這是不正確的解決方案。在這裏看到我的評論:http://stackoverflow.com/questions/6339826/looking-for-the-simplest-way-to-extract-tow-strings-from-another-in-c/6339924#6339924 – 2011-06-14 06:38:51

+0

請注意我指定:「如果格式總是相同的。」 - >雖然你肯定有點! – ub1k 2011-06-14 06:43:23

0
string[]list = a.Split("."); 
string numbers = list[0]; 
string chars = list[1];