2011-06-14 39 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]; 
相关问题