我在下面的代码中给出了一个字符串名称字符串。该字符串包含一个短语,即由单个空格分隔的一个或多个单词。该程序计算并返回该短语的首字母缩写词。
import java.math.*;
import java.util.*;
import static java.util.Arrays.*;
import static java.lang.Math.*;
public class Initials {
public String getInitials(String s) {
String r = "";
for(String t:s.split("\\s+")){
r += t.charAt(0);
}
return r;
}
void p(Object... o) {
System.out.println(deepToString(o));
}
}
实施例: " john fitzgerald kennedy"
返回:" jfk"
答案 0 :(得分:5)
split("\\s+")
会将字符串拆分为数组字符串,其中分隔符为空格或多个空格。 \s+
是一个或多个空格的正则表达式。
答案 1 :(得分:1)
它只是意味着:在给定的正则表达式上对输入字符串 s 进行切片。
那个正则表达式只是说:“一个或多个空格”。 (有关这些模式的含义,请参阅here)
因此:对split的调用返回一个带有“john”,“fitzgerald”的数组,...... 该数组使用for-each类型的for循环直接“处理”。
然后当你选择每个字符串的第一个字符时,你最终会得到“jfk”