我正在努力让一个程序工作,它执行以下操作:
假设我们有一个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)
这样工作方式:
编辑:
正如所建议的,字符串连接通常效率不高,如果您处理非常长的字符串,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)
尝试按" "(空格)分割,然后获取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)
使用 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)
| 归档时间: |
|
| 查看次数: |
19690 次 |
| 最近记录: |