Javaのフォームで入力された氏名か番号があらかじめ作成された配列内に同じ要素があるとき
番号・名前・点数を連結してテキストボックスに表示する
同じ要素が存在しないとき「ありません」をテキストボックスに表示する
という課題なのですが、入力された漢字での部分一致検索がなぜか失敗してしまいます。
どのような改善をするとよいのかアドバイスお願いします
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class MainProgram extends JFrame implements ActionListener{
public static void main(String[] args) {
new MainProgram();
}
int[] namber = new int[]{1,2,3,4,5,6,7,8,9,10};
String[] name = new String[]{"田中士郎","竹田雲雀","三木裕也","佐々木謙哉","岩田裕也","能登真美子","泉真一","佐川急便","阿賀美穂","加賀美優"};
int[] point = new int[]{75,55,87,22,35,90,80,15,45,100};
JTextField text = new JTextField();
JTextField text2 = new JTextField();
JButton button = new JButton("検索");
JLabel ansLabel = new JLabel("検索結果");
MainProgram() {
getContentPane().setLayout(null);
text.setBounds(50,50,300,40);
getContentPane().add(text);
button.setBounds(200, 100, 100, 50);
button.addActionListener(this);
getContentPane().add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,500);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
String str = text.getText();
String ans = " ";
if( str.isEmpty() )
text2.setText("入力されていません");
else{
for( int i = 0; i < name.length; i++ )
{
if( name[i].matches(".*" + str + "*.") || str.matches("" + namber[i]))
{
ans.concat(name[i] + " " + namber[i] + " " + point[i]);
break;
}
}
if( ans.equals(" ") )
text2.setText("ありません");
else
text2.setText(ans);
}
ansLabel.setBounds(50,1500,200,50);
getContentPane().add(ansLabel);
text2.setBounds(50,250,300,40);
getContentPane().add(text2);
}
}