2013-09-26 57 views
1

嗨,大家好,我試圖從一個主要字符串中檢索一些其他字符串。C#如何從字符串中獲得單詞

string src = "A~B~C~D"; 

如何檢索單獨的字母?像:

string a = "A"; 
string b = "B"; 
string c = "C"; 
string d = "D"; 
+1

與string.Split開始然後修剪你想擺脫的字符。 – Ralf

+0

對'〜'有什麼特別的看法,你試過了什麼 – Anirudha

回答

4

試試這個。它會將您的字符串與所有非字母數字字符分開。

string s = "A~B~C~D"; 
string[] strings = Regex.Split(s, @"\W|_"); 
15

你可以使用Split(char c)會給你回來了〜符號分隔子string組成的數組。

string src = "A~B~C~D"; 

string [] splits = src.Split('~'); 

明顯不過,除非你知道你的字符串的長度/提前的話,你將不能夠隨意把他們在自己的變量。但如果你知道它總是4個字,那麼你可以做

string a = splits[0]; 
string b = splits[1]; 
string c = splits[2]; 
string d = splits[3]; 
3

你可以這樣做:

string src = "A~B~C~D"; 

string[] strArray = src.Split('~'); 

string a = strArray[0]; 
string b = strArray[1]; 
string c = strArray[2]; 
string d = strArray[3]; 
1
string words[]=Regex.Matches(input,@"\w+") 
        .Cast<Match>() 
        .Select(x=>x.Value) 
        .ToArray(); 

\w一個字,即AZ或az或_匹配或一個數字

+是一個量詞,匹配前面的char 1到很多次

+2

我想我會去http://en.wikipedia.org/wiki/KISS_principle –

+0

@JeroenvanLangen他編輯了他的問題......他最初的問題是選擇所有字符串中的**字樣**。 – Anirudha

+0

omg,謝謝你們:O在如此短的時間內有如此多的答案。哇 !!我從來沒有見過這樣的東西:)) –

3
string src = "A~B~C~D"; 
string[] letters = src.Split('~'); 

foreach (string s in letters) 
{ 
    //loop through array here... 
} 
+2

糟糕 - 我認爲需要打字得更快。當我按下提交時張貼的第五個答案:) –

2

考慮... -

string src = "A~B~C~D"; 
string[] srcList = src.Split(new char[] { '~' }); 
string a = srcList[0]; 
string b = srcList[1]; 
string c = srcList[2]; 
string d = srcList[3]; 
5

請試試這個

string src = "A~B~C~D" 
// 
// Split string on spaces. 
// ... This will separate all the words. 
// 
string[] words = src .Split('~'); 
foreach (string word in words) 
{ 
    Console.WriteLine(word); 
} 
1

我喜歡做這種方式:

 List<char> c_list = new List<char>(); 
     string src = "A~B~C~D"; 
     char [] c = src.ToCharArray(); 
     foreach (char cc in c) 
     { 
      if (cc != '~') 
       c_list.Add(cc); 
     } 
相關問題