[Java] 62 Swing 05 switch文のbreak,文字列から数字抽出

Pythonにはなぜかswitch文がありません。

開発中のアプリでボタンのコマンドに付番してswitch文で条件分岐しようとしたら、ちょいハマりしました。

各caseに定数で分岐するのにも少し戸惑いましたが、最後にbreakを入れないと次のcaseも読み込んでしまうというのを知りませんでした。

そして以下のエラー発生。
“Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “”

For input string: “”を見て他のJTextFieldへの読み込みを一瞬疑ったものの、それは後回し。System.out.printlnを随所に入れてチェックしまくりました。

まさかと思いながら、次のcaseの先頭にもSystem.out.printlnを挿入して実行するとあっけなく出力されてようやく原因判明。初心者あるあるでしょうか。

まあこのトラブル対応に伴い様々な小技を覚えたので良しとします。

public void actionPerformed(ActionEvent e) {
    // 文字列(Button1)から数字(1)を抽出してデータ型を整数に変換(今回覚えた小技の一つ)
		String cmd = e.getActionCommand();

		String cmd_i = cmd.replaceAll("[^\\d]", "");
		Integer cmd_i2 = Integer.parseInt(cmd_i);

		switch(cmd_i2) {
			case 1:
      <中略>
      break;