我已经开发了一个语音文本程序,用户可以说一个简短的句子,然后将其插入文本框中。提取句子中每个单词的第一个字母
如何提取每个单词的第一个字母,然后将其插入文本字段?
例如,如果用户说:“Hello World”。我想插入HW到文本框中。
我已经开发了一个语音文本程序,用户可以说一个简短的句子,然后将其插入文本框中。提取句子中每个单词的第一个字母
如何提取每个单词的第一个字母,然后将其插入文本字段?
例如,如果用户说:“Hello World”。我想插入HW到文本框中。
如果你有一个字符串,你可以使用
input.split(" ") //splitting by space
//maybe you want to replace dots, etc with nothing).
的迭代这个数组只是把它分解:
for(String s : input.split(" "))
,然后让每个字符串的第一个字母列表/阵列/等或将其追加到的字符串:
//Outside the for-loop:
String firstLetters = "";
// Insdie the for-loop:
firstLetters = s.charAt(0);
所得功能:
public String getFirstLetters(String text)
{
String firstLetters = "";
text = text.replaceAll("[.,]", ""); // Replace dots, etc (optional)
for(String s : text.split(" "))
{
firstLetters += s.charAt(0);
}
return firstLetters;
}
如果你想使用的列表(ArrayList的匹配)将所得的函数:
基本上你只需使用一个阵列/列表/等作为参数类型和代替text.split(“”)你只是使用参数。此外,删除线,在那里你将取代像点字符等
public String getFirstLetters(ArrayList<String> text)
{
String firstLetters = "";
for(String s : text)
{
firstLetters += s.charAt(0);
}
return firstLetters;
}
提取字符串,把它全部放入一个列表和循环假设句只包含a-z and A-Z and " " to separate the words
,如果你想要一个有效的方法来做到这一点,我建议下面的方法。
public String getResult(String input){
StringBuilder sb = new StringBuilder();
for(String s : input.split(" ")){
sb.append(s.charAt(0));
}
return sb.toString();
}
然后将其写入文本字段。
jTextField.setText(getResult(input_String));
我试了我的代码 String input = matches.toString(); StringBuilder sb = new StringBuilder();对于(String s:input.split(“”)){ sb.append(s.charAt(0)); } 它没有工作 - 匹配是存储输入的字符串。输出只是整句 – BasicCoder 2015-02-11 19:22:20
尝试'String input = matches;' – prime 2015-02-11 19:37:48
什么是'matches'字符串?你可以把它粘贴在这里还是在问题中? – prime 2015-02-11 19:41:02
这个关于语音识别的问题,还是你已经有了包含用户说的字符串? – immibis 2015-02-11 18:34:45
用户说出和内容被存储到一个字符串 如果(requestCode == RECOGNIZER_RESULT && resultCode为== RESULT_OK){ 最终的ArrayList匹配= data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); 匹配是存储输入的字符串 –
BasicCoder
2015-02-11 18:36:17
查看字符串API。有很多方法可以像'charAt','split','substring'一样使用。尝试一下,什么时候它不起作用回来你的尝试。 – Pshemo 2015-02-11 18:36:38