C#:更改文本框内的数字
我正在制作一个文本到语音的程序,到目前为止,我有一个文本框,里面有应该说的话。但是,我希望程序一次一个地说出文本框中的数字。例如,文本框可能包含以下内容: “这是一个号码3820这是另一个号码3823” 我想让程序单独说出数字,比如“这是一个数字三八二零”。只有在数字之间有逗号时,文本到语音服务器才会将数字分开。因此,文本框应具有以下内容: 这是一个数字3,8,2,0,这是另一个数字3,8,2,3 还有,有没有一种方法可以在一个单词后搜索数字并更改该数字。例如,仅更改“帐户”后的数字?例如: “这是一个帐户3029这是一个号码3009这是另一个帐户3030” 到C#:更改文本框内的数字,c#,textbox,numbers,comma,alter,C#,Textbox,Numbers,Comma,Alter,我正在制作一个文本到语音的程序,到目前为止,我有一个文本框,里面有应该说的话。但是,我希望程序一次一个地说出文本框中的数字。例如,文本框可能包含以下内容: “这是一个号码3820这是另一个号码3823” 我想让程序单独说出数字,比如“这是一个数字三八二零”。只有在数字之间有逗号时,文本到语音服务器才会将数字分开。因此,文本框应具有以下内容: 这是一个数字3,8,2,0,这是另一个数字3,8,2,3 还有,有没有一种方法可以在一个单词后搜索数字并更改该数字。例如,仅更改“帐户”后的数字?例如: “
“这是一个帐户3,0,2,9,这是一个数字3009这是另一个帐户3,0,3,0,”沿空格和其他空格拆分,然后可以检查每个单词是否是数字 然后你可以把这个词转换成字符,加上逗号,然后把它放回原处 理想情况下,如果您的文本到语音解决方案支持,请将其复制回隐藏的文本字段,然后将其用于语音,这样用户就不会看到修改 为了简单起见,您可能只想使用tryParse: 其中值是一个
字符串
更新
阅读问题的编辑后,通过拆分成单词,然后开始将字符串转换为小写,这样您就可以轻松地进行比较,然后,只需循环遍历每个单词
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);
}
StringBuilder buf=new StringBuilder();
for(int t=0;t
沿空格和其他空格拆分,然后可以检查每个单词是否为数字
然后你可以把这个词转换成字符,加上逗号,然后把它放回原处
理想情况下,如果您的文本到语音解决方案支持,请将其复制回隐藏的文本字段,然后将其用于语音,这样用户就不会看到修改
为了简单起见,您可能只想使用tryParse:
其中值是一个字符串
更新
阅读问题的编辑后,通过拆分成单词,然后开始将字符串转换为小写,这样您就可以轻松地进行比较,然后,只需循环遍历每个单词
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);
}
StringBuilder buf=new StringBuilder();
for(int t=0;t
您是否考虑过一个简单的字符串。替换?即
myText = myText.Replace("1", "1,");
对每个数字重复上述步骤
另外,您是否需要编辑文本框,在将文本发送到语音转换实用程序之前,您是否可以只处理文本(从文本框中提取)呢?您是否考虑过一个简单的字符串。替换?即
myText = myText.Replace("1", "1,");
对每个数字重复上述步骤
您还需要编辑文本框吗?在将文本发送到语音转换实用程序之前,您能否只处理文本(从文本框中提取的文本)?此方法将解析数字并以逗号分隔的格式放置:
public string ParseNumbers(string expression)
{
return string.Join(",", System.Text.RegularExpressions.Regex.Split(expression, "[^\\d]"));
}
此方法将解析数字并将其置于逗号分隔格式:
public string ParseNumbers(string expression)
{
return string.Join(",", System.Text.RegularExpressions.Regex.Split(expression, "[^\\d]"));
}
您需要向文本框中添加事件(例如按键)处理程序
TextBox1.KeyPress +=
new KeyPressEventHandler(TextBox1_KeyPress);
void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//do your check here.
}
您需要向文本框中添加事件(例如按键)处理程序
TextBox1.KeyPress +=
new KeyPressEventHandler(TextBox1_KeyPress);
void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//do your check here.
}
我接下来的问题(我忘了把这个添加到原来的问题中,我现在要编辑这个问题)是如何编辑一些数字,而保持其余的不变?例如“这是一个帐户3029这是一个数字3009”,我希望它是“这是一个帐户3,0,2,9,这是一个数字3009”?这是一个更重要的问题。你如何区分数字,即修改哪一个和不修改哪一个。如果只是第一个数字,那么可以使用James Black的答案来查找第一个数字,然后按照建议替换字符串。数字会根据前一个单词进行更改。例如,仅单词后的数字“account”会被更改。那么有没有办法找到“account”这个词呢?如果下一个字符是一个数字,那么在它上面加一个逗号,直到这个字符不是一个数字为止?然后我会说使用string.Split->iterate to the word account检查下一个条目是否是一个数字->使用string.Replace(或正则表达式)解析它->使用string.Join将其全部合并回去,这很可能是我没有意识到的一个严重错误。我接下来的问题(我忘了将此添加到原始问题中,我现在将对其进行编辑)是如何编辑一些数字,而保持其余数字不变?例如“这是一个帐户3029这是一个数字3009”,我希望它作为“这是一个帐户3,0,2,9,这是一个数字3009"?这是一个更重要的问题。你如何区分数字,即修改哪一个和不修改哪一个。如果只是第一个数字,那么可以使用James Black的答案来查找第一个数字,然后按照建议替换字符串。数字会根据前一个单词进行更改。例如,仅单词后的数字“account”会被更改。那么有没有办法找到“account”这个词呢?如果下一个字符是一个数字,那么在它上面加一个逗号,直到这个字符不是一个数字为止?然后我会说使用string.Split->iterate to the word account检查下一个条目是否是一个数字->使用string.Replace(或正则表达式)解析它->使用string.Join将其全部合并回