应该很清楚。
public class Main
{
public static void main(String[] args) {
String str = "Get#the#Acronym";
getAcronym(str);
}
public static void getAcronym(String str){
String[] parts = str.split("#");
for(var item : parts){
char a = item.charAt(0);
System.out.print(a);
}
}
}我已经用这种方法解决了这个问题,但不知道是否有更短的方法没有regex?
发布于 2022-05-28 11:19:42
这里有一个简单的避免正则表达式的方法。它可以处理与你不同的复制#。
public static void getAcronym(String str){
boolean isInAcronym = true;
for(char c : str.toCharArray()) {
if (isInAcronym) {
System.out.print(c);
}
isInAcronym = c == '#';
}
}发布于 2022-05-28 11:18:00
您还可以在返回或打印它之前,通过StringBuilder流并组合它。
public static String getAcr(String str) {
StringBuilder sb = new StringBuilder();
Arrays.stream(str.split("#"))
.forEach(part -> sb.append(part.charAt(0)));
return sb.toString();
}发布于 2022-05-28 11:24:11
您可以这样返回缩略语:
public String getAcronym(String str) {
return Arrays.stream(str.split("#")).map(s -> s.substring(0, 1)).collect(Collectors.joining());
}https://stackoverflow.com/questions/72415002
复制相似问题