我想从一串文本框中删除名为"apple"
的3个单词。文本框包含3个以上的苹果单词。我只需要选择3即可删除。
我使用了这段代码,但它删除了字符串中的所有苹果单词。
private void button4_Click(object sender, EventArgs e)
{
textBox3.Text = textBox3.Text.Replace("apple","");
}
我只想删除3个单词。你知道如何实现这个目标吗?
您可以尝试在字符串中三次(或更少,如果它没有出现三次)查找单词“apple”并将其从当前字符串中删除。
private void button4_Click(object sender, EventArgs e)
{
const string stringToRemove = "apple";
int i = 0;
int index = 0;
string textBoxString = textBox3.Text;
while(i<3 && index >= 0)
{
index = textBoxString.IndexOf(stringToRemove);
textBoxString = (index < 0)? textBoxString : textBoxString.Remove(index, stringToRemove.Length);
i++;
}
textBox3.Text = textBoxString;
}
您可以使用Regex.Replace的重载来指定要替换的最大次数
var regex = new Regex("apple");
var newText = regex.Replace(textBox3.Text, "", 3);
另一种可能性是Split
(将"apple"
作为分离器处理)和Concat
回来:
// 3 + 1: we want 3 separators to be eliminated, and thus 4 = 3 + 1 parts
textBox3.Text = string.Concat(textBox3.Text
.Split(new string[] { "apple" }, 3 + 1, StringSplitOptions.None));
有多种方法可以达到你想要的效果。 1是使用正则表达式,而下面的1是作为样本,基本上循环并替换你想要它的时间。
string value = textBox3.Text;
for(int a = 0; a < 2;a++){
value = value.replace("apple","");
}
textBox3.Text=value;