Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从句子中的每个单词中提取第一个字母_Java_String - Fatal编程技术网

Java 从句子中的每个单词中提取第一个字母

Java 从句子中的每个单词中提取第一个字母,java,string,Java,String,我开发了一个语音到文本的程序,用户可以说一个简短的句子,然后将其插入文本框中 如何提取每个单词的首字母,然后将其插入文本字段 例如,如果用户说:“你好,世界”。我想在文本框中插入HW。用于获取数组分隔的单词,然后您可以使用(0,N)获取前N个字符。如果您有字符串,您可以使用 input.split(" ") //splitting by space //maybe you want to replace dots, etc with nothing). 在

我开发了一个语音到文本的程序,用户可以说一个简短的句子,然后将其插入文本框中

如何提取每个单词的首字母,然后将其插入文本字段


例如,如果用户说:“你好,世界”。我想在文本框中插入HW。

用于获取数组分隔的单词,然后您可以使用(0,N)获取前N个字符。

如果您有字符串,您可以使用

input.split(" ") //splitting by space 
                 //maybe you want to replace dots, etc with nothing). 
在数组上进行迭代:

for(String s : input.split(" "))
然后获取列表/数组/etc中每个字符串的第一个字母或将其附加到字符串:

//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匹配),则生成函数:

基本上,您只需使用数组/list/etc作为参数类型,而不是text.split(“”)您只需使用参数。此外,删除要替换点等字符的行

public String getFirstLetters(ArrayList<String> text)
{
  String firstLetters = "";
  for(String s : text)
  {
    firstLetters += s.charAt(0);
  }
  return firstLetters;
}
公共字符串getFirstLetters(ArrayList文本)
{
字符串firstLetters=“”;
for(字符串s:文本)
{
第一个字母+=s.charAt(0);
}
回复第一封信;
}

您可能希望提取字符串,将其全部放入一个列表中,然后进行循环

String[] old = myTextView.getText().split(" ");
String add="";
for(String s:old)
    add+=""+s.charAt(0);
myTextView.setText(add);

假设句子只包含
a-z和a-z以及“”来分隔单词
,如果您想要一种有效的方法,我建议使用以下方法

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));  

这是关于语音识别的问题,还是您已经有了包含用户所说内容的字符串?如果(requestCode==RECOGNIZER\u RESULT&&resultCode==RESULT\u OK){final ArrayList matches=data.getStringArrayListExtra,用户说话并将内容存储到字符串中(识别者意图。额外结果);matches是将inputLook存储到字符串API中的字符串。有很多方法可以使用,如
charAt
split
substring
。请尝试一些方法,当它不起作用时,请返回尝试。我已经尝试过此字符串testPrhase=matches.toString();char strInput=testPrhase.charAt(1);它接受第一个单词的第一个字母,但不接受restuse拆分,并在空格字符上拆分字符串。您测试过您的示例吗?(1)字符串是不可变的(2)您会惊讶于
replaceAll(“.”,“”)
的功能:)啊,是的,不,我没有。忘记了转义点,谢谢提醒!text=text.replaceAll(\\.“,”).replaceAll(“,”,”);如果你要使用
replaceAll
,那么你可以使用
[,。]
作为它的参数来表示
。不需要为每个字符分别调用此方法两次。我添加了此函数。如何在具有字符串变量matches的不同方法上使用它我用我的code string input=matches.toString()尝试了此方法;StringBuilder sb=new StringBuilder();for(字符串s:input.split(“”){sb.append(s.charAt(0));}它不起作用-匹配是存储输入的字符串。输出只是整个句子try
string input=matches;
什么是
matches
string?你能把它粘贴在这里还是问题中?matches是最后的ArrayList matches=data.getStringArrayListExtra吗(识别意图。额外的结果);这是我的演讲输入不好,我的意思是它太旧了