检查String是否包含多个单词

时间:2013-06-26 14:42:33

标签: java

我的名字是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;

以上代码很好,但它不起作用。我也没有任何例外。

5 个答案:

答案 0 :(得分:0)

您尝试过的代码中几乎没有错误。

  1. String#split将String作为正则表达式。
  2. String#split的返回值是一个String数组。
  3. 所以它应该是:

    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);
}