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

时间:2015-02-11 18:34:03

标签: java string

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

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

例如,如果用户说:" Hello World"。我想在文本框中插入HW。

4 个答案:

答案 0 :(得分:7)

如果你有一个字符串,你可以使用

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

基本上你只是使用数组/列表/等作为参数类型而不是 text.split(“”)你只需使用参数。另外,删除用于替换点等字符的行

public String getFirstLetters(ArrayList<String> text)
{
  String firstLetters = "";
  for(String s : text)
  {
    firstLetters += s.charAt(0);
  }
  return firstLetters;
}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您需要提取字符串,将其全部放入列表中,然后循环遍历

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

答案 3 :(得分:0)

假设句子只包含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));