javaで予定を管理するシステムを作りたいのですが途中でうまくいきません
switch文のあたりがわからなく困っております
java初心者です
どなたか教えていただけないでしょうか。
発生している問題・エラーメッセージ
CalendarSystem.java:42: エラー: 不適合な型: String[]をintに変換できません:
switch(cmd) {
^
CalendarSystem.java:44: エラー: クラス CalendarSystemのメソッド addScheduleは指定された型に適用できません。
case "add":end_flag=true; addSchedule();break;
^
期待値: String[]
検出値: 引数がありません
理由: 実引数リストと仮引数リストの長さが異なります
CalendarSystem.java:45: エラー: クラス CalendarSystemのメソッド listSchedulesは指定された型に適用できません。
case "list":end_flag=true; listSchedules();break;
^
期待値: String[]
検出値: 引数がありません
理由: 実引数リストと仮引数リストの長さが異なります
エラー3個
該当のソースコード
java
ソースコード
import java.io.;
import java.util.;
im
port java.text.*;
public class CalendarSystem {
public class Schedule {
private int sn;
private Date date;
private String content;
public Schedule (int s, String dt, String c) throws ParseException {
sn=s;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd hh:mm");
date=sdf.parse(dt);
content=c;
}
public String toString() {
return String.format("%04d:%tY/%<tm/%<td %<tH:%<tM %s" ,sn,date,content);
}
}
private int last_sn;
private List<Schedule> sc_list;
public static void main (String[] args){
(new CalendarSystem() ).exec();
}
private void exec(){
initSystem();
boolean end_flag=false;
while(!end_flag){
String[] cmd=inputCommand();
switch(cmd) {
case "quit":end_flag=true; break;
case "add":end_flag=true; addSchedule();break;
case "list":end_flag=true; listSchedules();break;
default:
msg("コマンド"+cmd+"がわかりません。");
}
}
quitSystem();
}
private void initSystem(){
msg("*** 予定管理システムSP3へようこそ! ***");
last_sn=0;
sc_list=new ArrayList<Schedule>();
}
private void quitSystem(){
msg("バイバイ!、また使ってね");
}
private void msg(String m){
System.out.println(m);
}
private void msg0(String m){
System.out.print(m);
}
private String[] inputCommand(){
msg0("コマンドは?");
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String l=br.readLine();
return l.split(" ");
}catch(IOException e){}
String[] r={ "" };
return r;
}
private void addSchedule(String[] cmd){
if(cmd.length!=4){
msg("addコマンドの構文が不正です");
return;
}
try{
String d=cmd[1] +" "+cmd[2];
String c=cmd[3];
sc_list.add(new Schedule (++last_sn,d,c));
}catch (ParseException e){
msg("日付が不正です");
}
}
private void listSchedules(String[] cmd){
for(Schedule s:sc_list){
msg(" "+s);
}
}
}
試したこと
addScheduleにいろいろ渡しましたがうまくいきませんでした
またおそらくcase文も間違っていると思います
ここができなくては先に進めないのでどうかソースコードをよろしくお願いします
回答3件
あなたの回答
tips
プレビュー