2014-10-27 90 views
1

我覺得很愚蠢的問一個看似簡單的問題嘆息但對於我的生活我無法弄清楚。如何獲取字符串中的下一個單詞?

string myString = "10/27/14 TheNextString DontWantThisString"; 

假設第二個字符串是未知的(因爲它可以是任何類型的單詞)。我怎麼能在日期的最後一個索引之後得到第二個單詞。

對不起,可能是一個奇怪的問題。

var lastLine = line.Substring(idx + "date:".Length + 1, 14); 
var lastChar = lastLine.Substring(lastLine.Length-1, 1); 
headerName = lastLine.Substring(lastLine.LastIndexOf(lastChar), +1); 

繼承人一些我的代碼爲一個小上下文,如果你願意。

+0

是否總是會被三個詞用空格,其中第一個字是日期分開嗎? – 2014-10-27 19:12:45

+2

拆分空間並從數組中獲取第二個元素? – Habib 2014-10-27 19:12:53

+0

@eddie_cat是它總是用空格分隔,但它可以包含三個以上的單詞。我所關心的只是日期之後的那個詞。 – BluishMicrobe 2014-10-27 19:15:41

回答

3

你想要String.Split()

string[] delimiters = new string[] {" "}; 

string[] words = myString.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); 
+2

絕對是最好的答案,因爲沒有指定空格的數量始終是每個單詞的單個空間 – 2014-10-27 19:23:41

+0

完美!很棒!謝謝大家! – BluishMicrobe 2014-10-27 19:36:29

+0

只需添加,日期可能並不總是列表中的第一件事。在這種情況下,您可以使用這一行代碼在日期之後立即取詞,而不管它在字符串中的位置:'myString.Split(new [] {''},StringSplitOptions.RemoveEmptyEntries)[Array.FindIndex myString.Split(new [] {'',StringSplitOptions.RemoveEmptyEntries),z => DateTime.TryParse(z,out dt))+ 1];' – Icemanind 2014-10-27 19:40:31

0
string myString = "10/27/14 TheNextString DontWantThisString"; 
var values = Regex.Split(myString , @"\s+"); 

if (values.Count > 1) 
    Console.WriteLine(values[1]); 

這應該工作(沒有測試代碼,但你明白了)。

0
String result[] = myString.split(null); 

結果[1]會返回你所需要的。

0

參見:String.SplitMethod

namespace SplitDemo 
    { 
     class Program 
     { 
      static void Main(string[] args) 
      { 
       var myString = "10/27/14 TheNextString DontWantThisString"; 
       var stringArray = myString.Split(default(char[]), StringSplitOptions.RemoveEmptyEntries); 
       var word = stringArray[1]; 
      } 
     } 
    } 
相關問題