我的名字是String。如何以下列格式显示:如果是单个字,我需要单独显示第一个字符。如果是两个单词,我需要显示单词的前两个字符。
John : J
Peter: P
Mathew Rails : MR
Sergy Bein : SB
我不能使用enum
,因为我不确定列表是否会一直返回相同的值。虽然他们说,但它永远不会改变。
String name = myString.split('');
topTitle = name[0].subString(0,1);
subTitle = name[1].subString(0,1);
String finalName = topTitle + finalName;
以上代码很好,但它不起作用。我也没有任何例外。
答案 0 :(得分:0)
您尝试过的代码中几乎没有错误。
String#split
将String作为正则表达式。String#split
的返回值是一个String数组。所以它应该是:
String[] name = myString.split(" ");
或
String[] name = myString.split("\\s+);
您还需要首先检查数组中的元素数量,以避免异常:
String topTitle, subTitle;
if (name.length == 2) {
topTitle = name[0].subString(0,1);
subTitle = name[1].subString(0,1);
}
else
topTitle = name.subString(0,1);
答案 1 :(得分:0)
String.split
方法根据正则表达式将字符串拆分为字符串数组。
这应该有效:
String[] names = myString.split("\\s+");
String topTitle = names[0].subString(0,1);
String subTitle = names[1].subString(0,1);
String finalName = topTitle + finalName;
答案 2 :(得分:0)
你很亲密..
String[] name = myString.split(" ");
String finalName = name[0].charAt(0)+""+(name.length==1?"":name[1].charAt(0));
(name.length==1?"":name[1].charAt(0))
是一个三元运算符,如果name数组的长度为1则返回空字符串,否则返回第一个字符
答案 3 :(得分:0)
首先:“name”应该是一个数组。
String[] names = myString.split(" ");
第二:你应该使用if函数和length
变量来确定变量的长度。
String initial = "";
if(names.length > 1){
initial = names[0].subString(0,1) + names[1].subString(0,1);
}else{
initial = names[0].subString(0,1);
}
或者你可以使用for循环
String initial = "";
for(int i = 0; i < names.length; i++){
initial += names[i].subString(0,1);
}
答案 4 :(得分:0)
这对你有用
public static void getString(String str) throws IOException {
String[] strr=str.split(" ");
StringBuilder sb=new StringBuilder();
for(int i=0;i<strr.length;i++){
sb.append(strr[i].charAt(0));
}
System.out.println(sb);
}