いつもお世話になっております。
最終的に、入力された名前「first name」と「last name」のイニシャルのみを出力したいと考えております。
条件としては、
first name と last name と 2つに分けてユーザーに入力させるのではなく、一度に入力されたものをプログラム上で分けなければいけない。ということです。
考え方としては、
1)入力された「full name」をsplitで分けて、配列として扱う
2)その後、それぞれの最初の文字を出力する //この部分は1)が完成したら行います。
というものなのですが、
String str = "Satoshi Yamada";
であると
_コンソール
SatoshiYamada
と出力され、成功するのですが、
下記のように
String str = kb.next();
と、入力された値で試そうとすると
_コンソール
Please put your full name
Kazu Noguchi
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Task3.main(Task3.java:14)
という結果になります。
なぜ、入力された文字列ははsplitで配列に組み込めないのか?
もしくは単純なコーディングに関するミステイクなのか?
ご教授いただけると助かります。
Java
1import java.util.Scanner; 2 3//Write a program that computes your initials from your full name and displays them. 4public class Task3 { 5 6 public static void main(String[] args) { 7 // TODO 自動生成されたメソッド・スタブ 8 Scanner kb = new Scanner(System.in); 9 System.out.println("ローマ字でフルネームを入力してください"); 10 11 String str = kb.next(); 12 String[] names = str.split(" ", -1); 13 String firstName = names[0]; 14 String lastName = names[1]; 15 System.out.println(firstName + lastName); 16 17 18 } 19}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/05 15:18