我只想提取兩個逗號之間的單詞。 因此,如果字符串爲AB的Java,DE,78801的答案必須降 我曾嘗試這個代碼,但它不工作從逗號之間的字符串中提取文本
string search = "Ab Java, DE, 78801 ";
int index = search.IndexOf(",");
string result = search.Substring(search.IndexOf(",") ,index);
MessageBox.Show(result);
我只想提取兩個逗號之間的單詞。 因此,如果字符串爲AB的Java,DE,78801的答案必須降 我曾嘗試這個代碼,但它不工作從逗號之間的字符串中提取文本
string search = "Ab Java, DE, 78801 ";
int index = search.IndexOf(",");
string result = search.Substring(search.IndexOf(",") ,index);
MessageBox.Show(result);
如果字符串有總是 2逗號,你可以使用String.Split
它喜歡;
string search = "Ab Java, DE, 78801 ";
Console.WriteLine(search.Split(',')[1]); // DE
請記住,這將您生成DE
與前一個額外的空白。
如果你不想說白了空間,可以使用TrimStart()
將其刪除。
Console.WriteLine(search.Split(',')[1].TrimStart()); //DE
這是什麼'Dump()'方法? – Shaharyar
我找不到它給出錯誤的轉儲方法 –
@Shaharyar它是LINQPad的擴展方法。 http://stackoverflow.com/questions/2699466/linqpad-dump-extension-method-i-want-one我用這個工具來生成一些代碼示例,但看起來有時可能會讓人困惑。刪除它。 –
你的起點和終點在你的子字符串解析爲相同的值。
嘗試使用拆分並獲取第二個項目,當然這假定您的輸入始終遵循您的示例中的模式。否則,你需要做一些更復雜的事情。
string[] searchItems = search.Split(',');
string result = searchItems[1].Trim(); // will output DE
假設你的字符串始終只有兩個逗號,然後:
search.Split(", ")[1]
會給你想要的文字。
試試這個
string[] splitedStr=search.Split(',');
string NewStr=splitedStr[1].ToString();
嘗試......
String str = "Ab Java, DE, 78801 ";
String[] myStrings = str.split(",");
String marco = myStrings[1];
嘗試。它可以工作...
string[] arrayStr = search.Split(',');
int len = arrayStr.Length;
for(int i =1;i<=len-2;i++)
{
MessageBox.Show(result);
}
只是爲了便於閱讀:'我<= len-2'等於'我
這是我會用正則表達式解決的。它可能比解決方案要慢,但它更容易閱讀 - 特別是如果模式將隨着時間推移而發展。
該解決方案將不是這個樣子:
string search = "Ab Java, DE, 78801 ";
Regex r = new Regex(", *(.*) *,", RegexOptions.Compiled);
Console.WriteLine(r.Match(search).Groups[1].ToString());
這不周圍空間寫DE
。正則表達式實例應該是你的類的靜態成員,因爲我假設這是發生在一個循環內...
你的字符串有_always_兩個逗號? –
是它總是有兩個逗號 –