-4

名前を文字列として取得しています。次の形式で表示するにはどうすればよいですか。単一の単語の場合、最初の文字だけを表示する必要があります。2 つの単語の場合、単語の最初の 2 文字を表示する必要があります。

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;

上記のコードは問題ありませんが、機能しません。私も例外はありません。

4

5 に答える 5

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;
于 2013-06-26T14:49:48.483 に答える
0

試みたコードにはいくつかの間違いがあります。

  1. String#split正規表現として文字列を取ります。
  2. の戻り値はString#split文字列の配列です。

したがって、次のようになります。

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);
于 2013-06-26T14:48:04.337 に答える
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 の場合は空の文字列を返し、それ以外の場合は最初の文字を返す三項演算子です

于 2013-06-26T14:51:17.543 に答える
0

まず、「名前」は配列でなければなりません。

String[] names = myString.split(" ");

2 番目: 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);
}
于 2013-06-26T14:52:04.400 に答える