从逗号之间的字符串中提取文本
我想只提取两个逗号之间的那些单词。 所以,如果字符串是Ab Java,DE,78801答案必须是DE我已经尝试过这段代码,但它无效
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
您在Substring中的开始和结束解析为相同的值。
尝试使用split并获取第二项,当然这假设您的输入始终遵循示例中的模式。 否则你需要做一些更复杂的事情。
string[] searchItems = search.Split(','); string result = searchItems[1].Trim(); // will output DE
试试这个
string[] splitedStr=search.Split(','); string NewStr=splitedStr[1].ToString();
假设你的字符串总是只有两个逗号,那么:
search.Split(", ")[1]
会给你想要的文字。
试试这个…
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); }
这是我用正则表达式解决的问题。 它可能比String.Split
解决方案慢,但它更容易阅读 – 特别是如果模式将随着时间的推移而发展。
解决方案看起来像这样:
string search = "Ab Java, DE, 78801 "; Regex r = new Regex(", *(.*) *,", RegexOptions.Compiled); Console.WriteLine(r.Match(search).Groups[1].ToString());
这写DE
没有周围的空格。 正则表达式实例应该是类的静态成员,因为我认为这是在循环中发生的…