• ベストアンサー

if文で

String[]s = new String[1]; s[1] = "1";の1と BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String a = br.readLine();で入力した1は比較できますか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ 比較は出来ますが、 String[]s = new String[1]; と宣言すると、サイズは、1ですから s[0] しか使えないことに注意が必要です。。 以下のコードを参考にしてみてください。 ------------------------------------------------------------ String[] s = new String[10]; s[0] = "1"; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { String a = br.readLine(); if (s[0].equals(a)) { System.out.println("YES"); } else { System.out.println("NO"); } } catch (IOException e) { e.printStackTrace(); }

yuuitirou
質問者

お礼

自分はif(s[0]==a)で比較してました if (s[0].equals(a)) で OKみたいですね 助かりました ありがとうございます。

関連するQ&A

  • if文を使った問題について

    次の問題について・・・ 問題: (1)String型の変数を2個作成し、それぞれに自分の名前と年齢を設定する。 (2)標準入力を行う。 (3)標準入力された値が「name」だった場合は名前の入力されている変数の値を表示する。 (4)標準入力された値が「age」だった場合は年齢の入力されている変数の値を表示する。 (5)標準入力された値が「name」と「age」以外だった場合は「わかりません」と表示する。 出力結果: C:\>java NameAge name 岩田 C:\>java NameAge age 27 C:\>java NameAge ?? わかりません 解答例: import java.io.*; class NameAge{ public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String hoge = br.readLine(); if(hoge.equals("name")){ System.out.println("岩田"); }else if(hoge.equals("age")){ System.out.println("27"); }else{ System.out.println("わかりません"); } } } ************************************************************ 上記の解答例以外に記述方法ってないのでしょうか? 自分は最初switch文を使って出来ると思い、 import java.io.*; class NameAge{ public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); switch(str){ case "name": System.out.println("岩田"); break; case "age": System.out.println("27"); break; default: System.out.println("わかりません"); break; } } } というふうに記述してみたのですが、 NameAge.java:13:互換性のない型 検出値 : java.lang.String 期待値 : int switch(str){ とエラーが出てしまいました。 恐らくstrの変数をここで使おうとしたことがいけないの だろうと解釈したのですが、 この質問の場合switch文での記述方法というのは無いですか? やはりequals()メソッドを使ってif文で記述するしかない のでしょうか?

    • ベストアンサー
    • Java
  • if文の実行結果について

    public class Pass02 { public static void main(String[] args) throws IOException { /*入力の準備 */ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); /* 点数の入力 */ System.out.print(\"点数を入力>\"); int tensu = Integer.parseInt(br.readLine()); /* 合格判定 */ if (tensu >= 70) { System.out.println(\"合格です\"); } if (tensu >= 50) { System.out.println(\"再試験です\"); } else { System.out.println(\"不合格です\"); } } } 70点以上が合格、70点未満50点以上が再試験、50点未満は不合格と実行したいのですが、 70点を入力すると合格、再試験と実行されます。 どこが間違ってるのでしょうか?

    • ベストアンサー
    • Java
  • プログラムの組み合わせ方

    java初心者です。 2つのプログラムを組み合わせて1つのプログラムにしたいんですが、イマイチ分かりません。 このプログラムと、 import java.io.*; class Hello2 {  public static void main(String[] args) throws IOException {   System.out.println("名前を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   System.out.println(str + "さん、こんにちは!");  } } このプログラムを、 import java.io.*; class Sanbai{  public static void main(String[] args) throws IOException {   System.out.println("好きな数を入力してください");   BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   String str = br.readLine();   int x;   x = Integer.parseInt(str);   System.out.println("あなたの入力した数:" + x);   System.out.println("その3倍の数:" + (x*3));  } } 組み合わせて1つのプログラムにするにはどうしたらいいですか?(>_<)

    • ベストアンサー
    • Java
  • doubleで入力するには?

    はじめまして。 Javaの勉強をはじめたばかりです。 質問のしかたが正しいのかもちょっと自信がないのですが、 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); っていうのがありますよね? これの『int』のところを『double』で入力できるように するにはどうすればいいのでしょうか? すごい初心者な質問で申し訳ないですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • Java int sum = 0は必要ですか?

    やさしいJavaという本を買ったのですが、良くわからない箇所がありました。 --------------省略----------------- class Sample6 { public static void main(String[] args) throws IOException { System.out.println("整数を3つ入力してください。") ; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ; String str1 = br.readLine() ; String str2 = br.readLine() ; String str3 = br.readLine() ; int sum = 0 ; sum += Integer.parseInt(str1) ; -------------------略----------------- int sum = 0 ; とありますが、0と設定しておく必要はありますか? 無いとまずいですか? いきなりこのコードが出てきたと思うのですが どこかに書いてましたっけ?

    • ベストアンサー
    • Java
  • IF文と文字列の組み合わせについて

    今回、InputStreamReader、BufferedReaderクラスを用いての応答処理を返事次第で処理を分岐させるということを、IF文を用いて行うつもりでした。 ソースは以下の通りです。 import java.io.*; class test1{ public static void main(String[] args){ int num=0; do{ String str1; String str2; try{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); System.out.println("今日の日付を入力して下さい。"); str1=br.readLine(); System.out.println("今日の日付は"+str1+"でよろしいでしょうか?[はい/いいえ]"); str2=br.readLine(); if(str2.toString()=="はい"){ System.out.println("日付登録完了しました。"); }else if(str2.toString()=="いいえ"){ System.out.println("ただしい日付を入力して下さい。(1)"); num=1; }else System.out.println("ただしい日付を入力して下さい。(2)"); num=1; }catch(Exception e){ System.out.println("入力が正しくないです。"); num=1; } }while(num==1); } } 実際に処理をさせたときに、 c:\javasrc>java test1 今日の日付を入力して下さい。 8/1 今日の日付は8/1でよろしいでしょうか?[はい/いいえ] はい ただしい日付を入力して下さい。(2) 今日の日付を入力して下さい。 というように何を入力しても最終的にelseに返されてしまいます。 IF文と文字列の組み合わせが悪いのでしょうか…。 色々と考えてはみたものの解決策が見つかりませんでした。 どなたか詳しい方いましたら教えていただけると幸いです。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • このクラスをもとに2

    import java.lang.*; import java.io.*; import java.util.*; class SimpleReader{ public static void main(String[] argv) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s; System.out.print("Input: "); System.out.flush(); s = br.readLine(); } } このクラスをもとにプロンプト「Input: 」を出力して、文字列を入力させ、その文字列を反転(例えば"abc"→"cba")させて出力しつづけ、「end」と入力すると終わるプログラムを教えてください。

    • ベストアンサー
    • Java
  • このクラスをもとに…。

    import java.lang.*; import java.io.*; import java.util.*; class SimpleReader{ public static void main(String[] argv) throws IOException{ InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String s; System.out.print("Input: "); System.out.flush(); s = br.readLine(); } } このクラスをもとにプロンプト「Input: 」を出力して、文字列を入力させ、その文字列をそのまま出力しつづけ、「end」と入力すると終わるプログラムを教えてください。

  • Ctrl+Zが入力されると終了するプログラム

    入力された文字をそのまま表示し、[Ctrl]+Zが入力されると終了するプログラムを組んでいるんですがどのように記述すればよいか困っています。アドバイスお願いします。 public static void main(String args[])throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; do{ str = br.readLine(); System.out.println(str); }while(str == null); }

    • ベストアンサー
    • Java
  • java ファイル操作

    現在javaでファイル操作しファイルの文字列を検索したりファイルに文字列を追加したりする ものを作成しています。 現状のコードはこのような感じです。 class addresskensaku{ public static void main(String[] args)throws IOException{ System.out.println("数字を選択\n1.名前で検索\n2.年齢で検索\n3.出身地で検索\n4.追加"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); char res = str.charAt(0); //1が選択された場合 if(res == '1' || res == '1'){ System.out.println("名前を入力してください。"); BufferedReader fn = new BufferedReader(new InputStreamReader(System.in)); String str1 = fn.readLine(); try{ FileReader freader = new FileReader("addressdata.txt"); BufferedReader breader = new BufferedReader(freader); String tmp = null; //検索 System.out.println("検索結果 :"); while((tmp=breader.readLine())!=null){ String[] words = tmp.split(","); //部分一致 if(words[0].indexOf(str1) != -1){ System.out.println(tmp); } } breader.close(); }catch(IOException e){ System.out.println("e"); } } //2が入力された場合 if(res == '2' || res == '2'){ System.out.println("年齢を入力してください。"); BufferedReader o = new BufferedReader(new InputStreamReader(System.in)); String ol = o.readLine(); try{ FileReader freader = new FileReader("addressdata.txt"); BufferedReader breader = new BufferedReader(freader); String tmp =null; //検索 while((tmp=breader.readLine())!=null){ String[] words = tmp.split(","); //完全一致 if (ol.equals(words[1])){ // System.out.println("検索結果:"); System.out.println(tmp); } } breader.close(); }catch(IOException e){ System.out.println("e"); } } //3が入力された場合 if(res == '3' || res == '3'){ System.out.println("出身地を入力してください。"); BufferedReader p = new BufferedReader(new InputStreamReader(System.in)); String pref = p.readLine(); try{ FileReader freader = new FileReader("addressdata.txt"); BufferedReader breader = new BufferedReader(freader); String tmp = null; //検索 while((tmp=breader.readLine())!=null){ String[] words = tmp.split(","); //部分一致 if(words[2].indexOf(pref) != -1){ System.out.println(tmp); } } breader.close(); }catch(IOException e){ System.out.println("e"); } } //4が入力された場合 追加 if(res == '4' || res == '4'){ //氏名入力 System.out.println("氏名を入力してください。"); BufferedReader n = new BufferedReader(new InputStreamReader(System.in)); String str2 = n.readLine(); //年齢入力 System.out.println("年齢を入力してください。"); BufferedReader o = new BufferedReader(new InputStreamReader(System.in)); String str3 = o.readLine(); //住所入力 System.out.println("住所を入力してください。"); BufferedReader a = new BufferedReader(new InputStreamReader(System.in)); String str4 = a.readLine(); //ファイルに書き込み try{ File file = new File("addressdata.txt"); FileWriter filewriter = new FileWriter(file, true); filewriter.write(str2+","+str3+","+str4+"\r\n"); filewriter.close(); }catch(IOException e){ System.out.println("e"); } } } } これをカプセル化し 各機能ごとにメソッドを分けて作ろうかなと思っています。 結果の出力はmainでやる予定です。

専門家に質問してみよう