如何找到文本框文本的最后一个字符
本文关键字:文本 最后一个 字符 何找 | 更新日期: 2023-09-27 18:30:53
我是C#的初学者。我正在 asp.net 的帮助下制作一个像Microsoft桌面计算器这样的网络计算器。但我被困在一个地方。我的加号、减号、乘法或div 代码如下所示:
protected void btnPlus_Click(object sender, EventArgs e)
{
if (txtBox1.Text.EndsWith("+"))
{
txtBox1.Text = txtBox1.Text;
}
else
{
txtBox1.Text = txtBox1.Text + "+";
ViewState["Operation"] = "+";
}
}
但是我想检查所有操作(如减号、乘法和除法)的此条件。我不希望加号、减号、乘号或 Div 号出现在文本框中。
您可以将所有运算符存储在字符串常量中,并检查该字符串中是否包含最后一个字符:
private const string OPERATORS = "+-/*";
protected void btnPlus_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtBox1.Text) || // check if string is empty
OPERATORS.Contains(txtBox1.Text.Last())) // or if last character is a operator
{
txtBox1.Text = txtBox1.Text;
}
else
{
txtBox1.Text = txtBox1.Text + "+";
ViewState["Operation"] = "+";
}
}
您可以执行以下操作:
- 提取最后一个字符
- 基于字符将运算符分配给视图状态
- 如果是任何运算符,请从文本框中删除它们
-
最后做操作
if (txtBox1.Text != "") { char last_char = txtBox1.Text[txtBox1.Text.Length - 1]; switch (last_char) { case '+': ViewState["Operation"] = "+"; txtBox1.Text.Remove(txtBox1.Text.Length - 1); break; case '-': ViewState["Operation"] = "-"; txtBox1.Text.Remove(txtBox1.Text.Length - 1); break; // do the same for all operators default: break; } }