java - 当我想缩写两个单词时出现错误
问题描述
我想缩写名字中包含 3 个或更多名字的名字。另外,我想把'。它们之间。
谢谢
例如
sam harris dorothy
我的期望输出如下
s.h.d
我的代码是这样的
public class AbbreviateTwoWords {
public static void main(String[] args) {
String shs = abbrevName("Sam Harris");
System.out.println(shs);
}
public static String abbrevName(String name) {
String[] splitnamelist = name.split(" ");
char[] shortform = new char[10];
String point = ".";
int initial = 0;
for (String i : splitnamelist) {
if (initial % 2 == 0) {
shortform[initial] = i.charAt(0);
initial++;
} else {
shortform[initial]=point;
initial++;
}
return new String(shortform);
}
}
}
解决方案
为什么要复杂化并使用char数组,我无论如何都用索引猜测它的东西只是使用字符串并连接:
public static String abbrevName(String name) {
String[]splitnamelist=name.split(" ");
String shortform="";
for (String currentName:splitnamelist) {
shortform=shortform+currentName.charAt(0);
shortform=shortform+".";
}
//remove the last dot
if (shortform.length()>0)
{
shortform=shortform.substring(0, shortform.length()-1);
}
return shortform;
}
推荐阅读
- java - 通过 Rest Template 从另一个 REST API 服务获取 JAXBElement 对象
- azure - Azure Express 路由强制隧道与 NVA
- docker - Docker swarm、elasticsearch、单服务集群——3个节点——无法确定master-eligible节点
- amazon-web-services - AWS OpenSearch 的 Apache Beam Java ElasticsearchIO 错误
- c# - C# .net core - 对内存缓存的依赖注入引用
- amazon-web-services - 将现有 AWS 机密引入 Cloud Formation 堆栈
- highcharts - Highcharts - SMA 指标不显示
- reactjs - React Konva 旋转/旋转动画
- c - 具有中断选项的功能的顺序执行
- typescript - 打字稿。定义函数对象的类型