Java メソッド 引数 戻り値
前提・実現したいこと
変数 int num にシステムから入力値が与えられています。
メソッドを作成し、mainにてそのメソッドを呼出し、戻り値の要素を全て表示する。
その際、0番目の要素は表示しないように処理を実装する。
また、戻り値がnullだった場合、要素の出力ではなく「指定されたIDは見つかりません」と出力する。
メソッドの呼出しの際、実引数は変数 int num を設定する。
入力値
1
2
3
4
期待値
あいうえお
かきくけこ
さしすせそ
メソッドの内容
{"1","あ","い","うえお"}
{"2","か","き","くけこ"}
{"3","さ","し","すせそ"}
上記の要素を持つ静的配列変数を3つ宣言する。
数値型引数をString型変数に型変換する。
各配列の0番目の値とString型に変換した引数を比較し、比較して一致した場合、一致した配列変数を戻り値とする。
どの配列とも一致しなかった場合、nullを戻り値とする。
発生している問題・エラーメッセージ
java.lang.NullPointerException
と表示される。
nullが返ってきた際の処理がないことが原因だと思うのですが、色々調べてコードを書いてみましたがうまく処理することが出来ませんでした。
助言を頂けると幸いです。
ソースコード
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String text = scan.next();
int num = Integer.parseInt(text);
String[] fuga = getUserProfile(num);
for (int i = 1; i < fuga.length; i++){
if (fuga[i] != null){
System.out.println(fuga[i]);
}else{
System.out.println("指定されたIDは見つかりません");
}
}
}
static String[] getUserProfile(int num){
String[] data1 = {"1","あ","い","うえお"};
String[] data2 = {"2","か","き","くけこ"};
String[] data3 = {"3","さ","し","すせそ"};
String hoge = Integer.toString(num);
if(data1[0] == hoge){
return data1;
}else if(data2[0] == hoge){
return data2;
}else if(data3[0] == hoge){
return data3;
}else{
return null;
}
}
}