首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#:更改文本框内的数字

C#:更改文本框内的数字
EN

Stack Overflow用户
提问于 2011-08-20 07:10:24
回答 4查看 349关注 0票数 0

我正在编写一个text to speech程序,到目前为止,我已经有了一个包含应该说的内容的文本框。但是,我希望程序一次只说一个文本框中的数字。例如,文本框可能包含以下内容:

“这是一个数字3820这是另一个数字3823”

我想让程序分别说出数字,比如"This is a number 382Zero“。只有在数字之间有逗号的情况下,文本到语音服务器才会将数字分开。因此,textbox应该具有以下内容:

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

另外,有没有一种方法可以在单词后搜索数字并更改该数字。例如,只更改单词"Account“后面的数字?示例:

“这是一个帐户3029这是一个数字3009这是另一个帐户3030”

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

EN

回答 4

Stack Overflow用户

发布于 2011-08-20 07:16:31

按空格和其他空格拆分,然后可以检查每个单词是否都是一个数字。

然后,您可以将该单词转换为字符,添加逗号,然后将其放回原处。

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

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

http://msdn.microsoft.com/en-us/library/f02979c7.aspx

代码语言:javascript
运行
复制
bool result = Int32.TryParse(value, out number);

其中,String是一个值。

更新

读完对问题的编辑后,通过拆分成单词,然后从将字符串转换为小写开始,这样您就可以轻松地进行比较,然后循环遍历每个单词。

代码语言:javascript
运行
复制
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);
}
票数 2
EN

Stack Overflow用户

发布于 2011-08-20 07:17:14

你有没有考虑过简单的string.Replace?即

代码语言:javascript
运行
复制
myText = myText.Replace("1", "1,");

对每个数字重复上述步骤

另外,您是否需要编辑文本框,难道您不能在将文本发送到text to speech实用程序之前直接处理文本(从文本框中提取)吗?

票数 2
EN

Stack Overflow用户

发布于 2011-08-20 07:24:03

此方法将解析数字,并将它们放在逗号分隔的格式中:

代码语言:javascript
运行
复制
public string ParseNumbers(string expression)
{
    return string.Join(",", System.Text.RegularExpressions.Regex.Split(expression, "[^\\d]"));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7128329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档