コマンドプロンプトのnull文字判定
Aizu Onlineジャッジで入力された複数行の文字列に
a~zまでが何文字含まれるかを出力するプログラムを作っています。
Onlineジャッジでは動くのですが、コマンドプロンプトでプログラムを動かすと、
空行が判定できずに、プログラムの結果を取得することができません。
下のソースコードのように
while(true){
if(String s==null)break;
}
で最後の行を判定しているのですが、これは正しいやり方なのでしょうか?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class test{
public static void main(String[] args){
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String[] s_array;
String s;
StringBuffer buf=new StringBuffer();
try{
while(true){
s=reader.readLine();
if(s==null)break;
buf.append(s);
}
s_array=buf.toString().split("");
Alphabet(s_array);
}catch(IOException e){
System.out.println(e);
}
}
//テキストを読み込んで1行に変換したものをメソッドに代入する
private static void Alphabet(String[] s_array){
int[] alp=new int[26];
Arrays.fill(alp, 0);
for(int i=0;i<s_array.length;i++){
s_array[i]=s_array[i].toLowerCase();
switch(s_array[i]){
case("a"):
alp[0]+=1;break;
case("b"):
alp[1]+=1;break;
case("c"):
alp[2]+=1;break;
case("d"):
alp[3]+=1;break;
case("e"):
alp[4]+=1;break;
case("f"):
alp[5]+=1;break;
case("g"):
alp[6]+=1;break;
case("h"):
alp[7]+=1;break;
case("i"):
alp[8]+=1;break;
case("j"):
alp[9]+=1;break;
case("k"):
alp[10]+=1;break;
case("l"):
alp[11]+=1;break;
case("m"):
alp[12]+=1;break;
case("n"):
alp[13]+=1;break;
case("o"):
alp[14]+=1;break;
case("p"):
alp[15]+=1;break;
case("q"):
alp[16]+=1;break;
case("r"):
alp[17]+=1;break;
case("s"):
alp[18]+=1;break;
case("t"):
alp[19]+=1;break;
case("u"):
alp[20]+=1;break;
case("v"):
alp[21]+=1;break;
case("w"):
alp[22]+=1;break;
case("x"):
alp[23]+=1;break;
case("y"):
alp[24]+=1;break;
case("z"):
alp[25]+=1;break;
default:break;
}//switch
}//for
System.out.println("a : "+alp[0]);
System.out.println("b : "+alp[1]);
System.out.println("c : "+alp[2]);
System.out.println("d : "+alp[3]);
System.out.println("e : "+alp[4]);
System.out.println("f : "+alp[5]);
System.out.println("g : "+alp[6]);
System.out.println("h : "+alp[7]);
System.out.println("i : "+alp[8]);
System.out.println("j : "+alp[9]);
System.out.println("k : "+alp[10]);
System.out.println("l : "+alp[11]);
System.out.println("m : "+alp[12]);
System.out.println("n : "+alp[13]);
System.out.println("o : "+alp[14]);
System.out.println("p : "+alp[15]);
System.out.println("q : "+alp[16]);
System.out.println("r : "+alp[17]);
System.out.println("s : "+alp[18]);
System.out.println("t : "+alp[19]);
System.out.println("u : "+alp[20]);
System.out.println("v : "+alp[21]);
System.out.println("w : "+alp[22]);
System.out.println("x : "+alp[23]);
System.out.println("y : "+alp[24]);
System.out.println("z : "+alp[25]);
}//Alphabetメソッド
}