获取String中每个单词的第一个字符

far*_*nka 4 java string

我正在努力让一个程序工作,它执行以下操作:

假设我们有一个String被叫name,设置为"Stack Overflow Exchange".我想输出给"SOE"每个单词的第一个字符的用户.我尝试了这种split()方法,但我没有做到.

我的代码:

public class q4 {
    public static void main(String args[]) {
        String x = "michele jones";
        String[] myName = x.split("");
        for(int i = 0; i < myName.length; i++) {
            if(myName[i] == "") {
                String s = myName[i];
                System.out.println(s);
            }              
        }         
    }     
}   
Run Code Online (Sandbox Code Playgroud)

我试图检测是否有空格,然后我可以简单地采用下一个索引.谁能告诉我我做错了什么?

Sim*_*nni 12

String initials = "";
for (String s : fullname.split(" ")) {
  initials+=s.charAt(0);
}
System.out.println(initials);
Run Code Online (Sandbox Code Playgroud)

这样工作方式:

  1. 声明变量"initials"以保存结果
  2. 在空格上拆分fullname字符串,并迭代单个单词
  3. 将每个单词的第一个字符添加到首字母

编辑:

正如所建议的,字符串连接通常效率不高,如果您处理非常长的字符串,StringBuilder是更好的选择:

StringBuilder initials = new StringBuilder();
for (String s : fullname.split(" ")) {
  initials.append(s.charAt(0));
}
System.out.println(initials.toString());
Run Code Online (Sandbox Code Playgroud)

编辑:

您可以简单地获取String作为字符数组:

char[] characters = initials.toString().toCharArray();
Run Code Online (Sandbox Code Playgroud)


brs*_*o05 6

尝试按" "(空格)分割,然后获取charAt(0)每个单词的(第一个字符)并按如下方式打印:

public static void main(String args[]) {
    String x = "Shojibur rahman";
    String[] myName = x.split(" ");
    for (int i = 0; i < myName.length; i++) {
        String s = myName[i];
        System.out.println(s.charAt(0));
    }
}
Run Code Online (Sandbox Code Playgroud)


Jef*_*oom 5

使用 Java 8 流:

String initials = Arrays.stream(str.split(" "))
    .map(s -> s.substring(0, 1))
    .collect(Collectors.joining());
System.out.println(initials);
Run Code Online (Sandbox Code Playgroud)