エラーで式の開始が不正ですと出ます。
質問内容 課題
・ファイル student.txt に学生データ(学籍番号、氏名、所属学部)が入っている。
・半角文字で学籍番号を入れて、検索ボタンを押すと、氏名と学部が表示される。
・存在しない学籍番号を入れて、検索ボタンを押すと、「該当なし」が表示される。
・ファイル student.txt の内容。
学籍番号 氏名 学部の間は半角スペースで区切る。 0521201 金城花子 文学部
0533101 守山春子 生活環境学部
0561101 大森夏子 人間科学部
0552130 名城秋子 現代文化学部
0571201 鶴舞冬子 薬学部
プログラムソース↓
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
class kadai2Frame extends JFrame {
private JTextField tf1,tf2,tf3;
public kadai2Frame() {
setSize(200,100);
addWindowListener(new WindowAdapter() { // ×クリック時の終了処理
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container c=getContentPane();
c.setLayout(new GridLayout(4,2)); // グリッドレイアウト4 行2 列を指定
c.add(new JLabel("学籍番号")); // 最初のラベルを作成して[名前]と表示
c.add(tf1=new JTextField("",8));
c.add(new JLabel("氏名")); // 最初のラベルを作成して[名前]と表示
c.add(tf2=new JTextField("",8));
c.add(new JLabel("学部")); // 次のラベルを作成して[年齢]と表示
c.add(tf3=new JTextField("",8));
JButton bt;
c.add(bt=new JButton("検索")); // ボタンbt を作成して[検索]と表示
bt.addActionListener(new ActionListener() { // ボタンbt のリスナーを登録
public void actionPerformed(ActionEvent e) { // ボタンが押された時
string s6 = tf1.getText();
if(s1.equals(s6)){tf2.setText(str1Ary[1]);
string s6 = tf1.getText();
if(s2.equals(s6)){tf2.setText(str2Ary[1]);
string s6 = tf1.getText();
if(s3.equals(s6)){tf2.setText(str3Ary[1]);
string s6 = tf1.getText();
if(s4.equals(s6)){tf2.setText(str4Ary[1]);
string s6 = tf1.getText();
if(s5.equals(s6)){tf2.setText(str5Ary[1]);
}
public static void main(String[] args) {
JFrame w=new kadai2Frame();
w.setVisible(true);
try{
BufferedReader br =
new BufferedReader(new FileReader("student.txt"));
}
catch (FileNotFoundException e) {
String str1 = br.readLine();
String str2 = br.readLine();
String str3 = br.readLine();
String str4 = br.readLine();
String str5 = br.readLine();
String[] str1Ary = str1.split(" ");
for (int i=0; i<str1Ary.length; i++) {
System.out.println(str1Ary[i]);
}
String[] str2Ary = str2.split(" ");
for (int i=0; i<str2Ary.length; i++) {
System.out.println(str2Ary[i]);
}
String[] str3Ary = str3.split(" ");
for (int i=0; i<str3Ary.length; i++) {
System.out.println(str3Ary[i]);
}
String[] str4Ary = str4.split(" ");
for (int i=0; i<str4Ary.length; i++) {
System.out.println(str4Ary[i]);
}
String[] str5Ary = str5.split(" ");
for (int i=0; i<str5Ary.length; i++) {
System.out.println(str5Ary[i]);
}
String s1 = "str1Ary[0]";
String s6 = "tf1";
String s2 = "str2Ary[0]";
String s3 = "str3Ary[0]";
String s4 = "str4Ary[0]";
String s5 = "str5Ary[0]";
}
}
});
}
}
以上です。誰か教えてください!!(ToT)
お礼
早速のご回答ありがとうございました。 急いで作ったプログラムだったのであらゆる状況を考えずに プログラムを作ってしまいました。 kuma_riderさんが指摘されたとおり空白が入力されなかったときの処理、 空白が全て除去されたときの処理を全く考えずに作ってしまいました。 タイムリミットが近いため今回は頭で考えてプログラムを作成していたのですが、余裕があるときはメモを取るなり、トレースするなどして 作って生きたいと思います(急いでいても後者のほうが確実かもしれません)。 本日はありがとうございました^^