前提・実現したいこと

変数 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;
      }
  }
}