gakkie プログラミング 備忘録

tech::expert(現tech camp) 45期

湯婆婆で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("ちゃんと名前を書きな!");
        }
    }
}