【サイト内の Java 関連の資料】
プログラムの内容
2つの文字列を入力して、文字列比較を行う。 同じであればtrue、違っていればfalseを返す。
import java.io.*; public class Main { /** * @param args */ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("文字列A"); String strA = br.readLine(); System.out.println("文字列B"); String strB = br.readLine(); if (strA.equals(strB)) { System.out.println("true"); } else { System.out.println("false"); } } }
【Windows での実行】
Windows で,ファイル Main.java を編集し実行するために,次のコマンドを, コマンドプロンプトで実行する.
cd %LOCALAPPDATA% notepad Main.java javac -encoding UTF-8 Main.java java Main
input "データ"と打ち込むことでデータをStringBufferに入力し、outputと打 ちこむことでこれまでに入れた全データを画面に出力する。deleteと打ち込むと 入力したデータを全て削除する。helpと打ち込むとコマンドリストが画面に出力 され、quitと打ち込むと終了する。
プロジェクトを作成
以下の3つのjavaファイルを作成.
javaファイル名: HelloWorld.java, command_line.java, test.java test.javaをクリックし, 実行→実行→JUnitテスト(もしくは Alt+Shift+X を 押した後 T を押す)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { try{ String text; StringBuffer sb = new StringBuffer(); BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("入力してください:(ヘルプ:help) "); command_line cl = new command_line(); while(true){ System.out.print("> "); text=buf.readLine(); if(cl.return_value(text,sb)==0)break; } } catch(IOException e) { System.out.println("IO Error"); System.exit(1); } } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class command_line { public int return_value(String text, StringBuffer sb){ String command, value; StringTokenizer st; if(text.equals(""))return -1; st = new StringTokenizer(text, " "); command = st.nextToken(); if(command.compareTo("quit")==0)return 0; else if(command.compareTo("help")==0){ System.out.println("コマンド一覧 "); System.out.println(" ヘルプ :help"); System.out.println(" 終了 :quit"); System.out.println(" データ入力 :input \"データ\" "); System.out.println(" 全データ出力 :output"); System.out.println(" 全データ削除 :delete"); return 1; } else if(command.compareTo("input")==0){ if(st.hasMoreTokens()==true){ value = st.nextToken(); sb.append(value+'\n'); } return 2; } else if(command.compareTo("output")==0){ System.out.print(sb);return 3;} else if(command.compareTo("delete")==0){ sb.delete(0, sb.length());return 4;} return -1; } }
import junit.framework.TestCase; public class test extends TestCase { public void test_no_input() { StringBuffer sb = new StringBuffer(); command_line cl = new command_line(); assertTrue(cl.return_value("",sb)==-1); } public void test_quit() { StringBuffer sb = new StringBuffer(); command_line cl = new command_line(); assertTrue(cl.return_value("quit",sb)==0); } public void test_help() { StringBuffer sb = new StringBuffer(); command_line cl = new command_line(); assertTrue(cl.return_value("help",sb)==1); } public void test_inout() { StringBuffer sb = new StringBuffer(); command_line cl = new command_line(); assertTrue(cl.return_value("input asdf",sb)==2); assertTrue(cl.return_value("output",sb)==3); assertTrue(sb.toString().equalsIgnoreCase("asdf\n")); } public void test_delete() { StringBuffer sb = new StringBuffer(); command_line cl = new command_line(); assertTrue(cl.return_value("delete",sb)==4); } }
【Windows での実行】
Windows で,ファイル Main.java, command_line.java, test.java を編集し実行するために,次のコマンドを, コマンドプロンプトで実行する.
cd %LOCALAPPDATA% notepad Main.java notepad command_line.java notepad test.java javac -encoding UTF-8 Main.java javac -encoding UTF-8 command_line.java javac -encoding UTF-8 test.java java Main
コンソール画面においてキーボードからの入力を読み取り、 StringBufferに蓄える。最終的に入力した結果を出力する。
ファイル:Main.java, MainTest.java
Main.java
JUnitによるテスト
MainTest.java
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static String get_string() throws IOException { BufferedReader r = new BufferedReader(new InputStreamReader(System.in), 1); System.out.println("input string:"); System.out.print(">"); System.out.flush(); String s = r.readLine(); return s; } public static StringBuffer set_buffer() throws IOException { // TODO Auto-generated method stub StringBuffer buf = new StringBuffer(); String str; System.out.println("roop (finish is \"\")."); while(true){ str = get_string(); if(str.equalsIgnoreCase("")) break; //else buf.append("\t").append(str).append("\n"); else{ System.out.println("you input \"" + str + "\"."); buf.append("\t" + str + "\n"); } } System.out.println("finish input."); return buf; } public static void main(String[] args) throws IOException { // TODO Auto-generated method stub StringBuffer buf = set_buffer(); if(buf.length() != 0){ System.out.println("record:"); System.out.print(buf); } else System.out.println("record:no string was input."); return; } }
import java.io.IOException; import junit.framework.TestCase; public class MainTest extends TestCase { public void testString() throws IOException { System.out.println("check get_string() :: input \"abc\"."); String str = Main.get_string(); assertNotNull(str); assertEquals(str, "abc"); System.out.println(""); }; public void testStingBuffer() throws IOException { System.out.println("check set_buffer() :: input \"abc\" and \"def\"."); StringBuffer str = Main.set_buffer(); assertNotNull(str); assertEquals(str.toString(), "\t" + "abc" + "\n" + "\t" + "def" + "\n"); System.out.println(""); }; }
【Windows での実行】
Windows で,ファイル Main.java, MainTest を編集し実行するために,次のコマンドを, コマンドプロンプトで実行する.
cd %LOCALAPPDATA% notepad Main.java notepad MainTest.java javac -encoding UTF-8 Main.java java Main