湯婆婆でJava例外処理練習
去年流行ったJavaで湯婆婆を実装してみる を参考に例外処理を実装する。
空文字に例外を投げることはできたが全角スペースを許容してしまう。 今回は全角スペースを許容もチェックする。
結論
- trimメソッドを使って名前を入力した時点で全角スペースを除く処理にした。
失敗
import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] arts){ System.out.println("契約書だよ。そこに名前を書きな。"); Scanner keiyakusho = new Scanner(System.in); String name = keiyakusho.nextLine(); if (!name.matches("/[^\\s ]/")){ return; } Yubaba(name); } private static void Yubaba(String name) { try { Random random = new Random(); int newNameIndex = random.nextInt(name.length()); String newName = name.substring(newNameIndex,newNameIndex+1); System.out.println("フン。"+name +"というのかい。贅沢な名だねぇ。"); System.out.println("今からお前の名前は"+newName+"だ。いいかい、"+newName+"だよ。分かったら返事をするんだ、"+newName+"!!"); }catch(Exception e) { System.out.println("ちゃんと名前を書きな!"); } } }
完成
import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] arts){ System.out.println("契約書だよ。そこに名前を書きな。"); Scanner keiyakusho = new Scanner(System.in); String word = keiyakusho.nextLine(); String name = word.trim(); Yubaba(name); } private static void Yubaba(String name) { try { Random random = new Random(); int newNameIndex = random.nextInt(name.length()); String newName = name.substring(newNameIndex,newNameIndex+1); System.out.println("フン。"+name +"というのかい。贅沢な名だねぇ。"); System.out.println("今からお前の名前は"+newName+"だ。いいかい、"+newName+"だよ。分かったら返事をするんだ、"+newName+"!!"); }catch(Exception e) { System.out.println("ちゃんと名前を書きな!"); } } }