String mystring="start i dont know hot text can it to have here important=value5; x=1; important=value2; z=3;";
建议我想获得“importante”的值现在我知道如何使用子字符串,但它有2个子字符串,那么我如何得到,第一个,然后下一个? ...? 如果它不可能我想尝试...保存第一个。并从“start”开始删除,直到下一个查询的value5保存value2 ... 如何做两件事?
我得到了第一个值......
string word = "important=";
int c= mystring.IndexOf(word);
int c2 = word.Length;
for (int i = c+c2; i < mystring.Length; i++)
{
if (mystring[i].ToString() == ";")
{
break;
}
else
{
label1.Text += mystring[i].ToString(); // c#
// label1.setText(label1.getText()+mystring[i].ToString(); //java
}
}
答案 0 :(得分:6)
如果要提取所有值,可以使用正则表达式:
string input = "start i dont know hot text can it to have here important=value5; x=1; important=value2; z=3;";
Regex regex = new Regex(@"important=(?<value>\w+)");
List<string> values = new List<string>();
MatchCollection matches = regex.Matches(input);
foreach (Match match in matches)
{
string value= match.Groups["value"].Value;
values.Add(value);
}
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以将值保存在数组中,而不是使用MessageBox显示它们。
string mystring = "start i dont know hot text can it to have here important=value5; x=1; important=value2; z=3;";
string temp = mystring;
string word = "important=";
while (temp.IndexOf(word) > 0)
{
MessageBox.Show( temp.Substring(temp.IndexOf(word) + word.Length).Split(';')[0]);
temp = temp.Remove(temp.IndexOf(word), word.Length);
}
答案 3 :(得分:0)
使用正则表达式,找到所有匹配并自己重建字符串。