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,"
您考虑过简单的字符串替换吗?例如
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.
}