我有两个文本框的textbox1(读/写)& textbox2(只读),textbox1是您输入文本的位置,此时您按一个按钮将该文本传递到textbox2(textbox2连续地连接textbox1中的文本)。我有一个第二个按钮,我想按来删除textbox2中仍然在textbox1中的文本。谁能建议怎么做?
我在想;
string one = textbox1.text;
string two = textbox2.text;
string newTwo = two.trimend( value of string 'one' needs to be removed );
textbox2.text = newTwo;
textbox1;
world
textbox2;
hello world
我知道这听起来很奇怪,但这对于代数计算器来说有点麻烦。
答案 0 :(得分:0)
你可以这样做:
var start = two.IndexOf(one);
textbox2.text = two.Substring(start);
答案 1 :(得分:0)
您还可以使用Replace
方法
string newTwo = two.Replace(one,"");
答案 2 :(得分:0)
If (textbox2.Text.EndsWith(textbox1.Text))
textbox2.Text = textbox2.Text.Substring(0, textbox2.Text.Length - textbox1.Text.Length);
答案 3 :(得分:0)
据我所知,您的问题归结为"如何实施TrimEnd
?"。您可以使用以下代码:
public static class StringExtensions
{
public static string TrimEnd(this string str,
string subject,
StringComparison stringComparison)
{
var lastIndexOfSubject = str.LastIndexOf(subject, stringComparison);
return (lastIndexOfSubject == -1
|| (str.Length - lastIndexOfSubject) > subject.Length)
? str
: str.Substring(0, lastIndexOfSubject);
}
}
然后是你的代码隐藏:
textbox2.text = textbox2.text.TrimEnd(textbox1.text, StringComparison.CurrentCulture);
答案 4 :(得分:0)
@jayvee是对的。用string.Empty
替换就可以了。
但是有一个问题:
在"Hello"
中替换"Hello World"
时,前导空格会保留。 newTwo
将是" World"
。您可能还希望通过Regex
替换多个空格作为已发布的here,然后Trim()
替换新的字符串。
这也是区分大小写的。