c#:修改文本框中的数字

本文关键字:数字 文本 修改 | 更新日期: 2023-09-27 18:06:04

我正在制作一个文本到语音程序,到目前为止我有一个包含应该说的话的文本框。但是,我希望程序一次说出一个文本框内的数字。例如,文本框可能包含如下内容:

"这是3820,这是另一个3823"

我想让程序单独说出数字,如"这是数字三八二零"。文本到语音服务器只会在数字之间有逗号的情况下将数字分开。所以文本框应该改成:

"这是数字3,8,2,0,这是另一个数字3,8,2,3,"

还有,是否有一种方法可以在单词后搜索数字并更改该数字。例如,只更改"帐户"后面的数字?例子:

"这是一个帐户3029,这是一个号码3009,这是另一个帐户3030"

"这是一个帐户3,0,2,9,这是一个数字3009,这是另一个帐户3,0,3,0,"

c#:修改文本框中的数字

您考虑过简单的字符串替换吗?例如

myText = myText.Replace("1", "1,");

重复每个数字

你也需要编辑文本框,你不能只是处理文本(从文本框中取出),然后将其发送到文本到语音工具?

沿着空格和其他空格分隔,然后您可以检查每个单词是否为数字。

然后你可以把这个单词转换成字符,加上逗号,然后再放回去。

理想情况下,如果您的文本到语音解决方案支持它,将其复制回隐藏文本字段,然后将其用于语音,因此用户不会看到修改。

为了简单起见,您可能只想使用tryParse:

http # 58;//msdn.microsoft.com/en-us/library/f02979c7.aspx

bool result = Int32.TryParse(value, out number);

其中value为String .

在阅读了问题的编辑后,通过拆分单词,然后开始将字符串转换为小写,以便您可以轻松比较,然后循环遍历每个单词。

StringBuilder buf = new StringBuilder();
for(int t = 0; t < wordarray.length - 1; t++) {
  String s = wordarray[t];
  if (numberWord.contains(s) && isWordNumber(wordarray[t + 1]) {
      s = addCommas(wordarray[t + 1]);
  }
  buf.append(' ').append(s);
}

此方法将解析数字并将其以逗号分隔的格式显示:

public string ParseNumbers(string expression)
{
    return string.Join(",", System.Text.RegularExpressions.Regex.Split(expression, "[^''d]"));
}

您需要添加一个事件(e。g按键)处理程序到文本框。

TextBox1.KeyPress +=
                new KeyPressEventHandler(TextBox1_KeyPress);
void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
//do your check here.
}