プロが教える店舗&オフィスのセキュリティ対策術

javaでキーボードからの入力を格納するやつがあって、
Scanner と BufferedReaderのやり方がありますが、これはどう違うのでしょうか?
それとも全く同じでしょうか?

たとえば、
■一つ目
import java.io.*;

class Sample3{
public static void main(String[] args) throws IOException{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("文字列を入力してください");

String str1=br.readLine();


System.out.println("検索文字を入力してください");

String str2=br.readLine();
char ch=str2.charAt(0);

int num=str1.indexOf(ch);

if(num !=-1)
System.out.println(str1+"の"+(num+1)+"番目に「"+ch+"」が見つかりました");
else
System.out.println(str1+"に「"+ch+"」はありません");
}
}

■二つ目
import java.util.Scanner;

class Sample4{
public static void main(String[] args){

Scanner stdIn=new Scanner(System.in);
System.out.println("文字列を入力してください");

String str1=stdIn.nextLine();

System.out.println("検索文字を入力してください");

String str2=stdIn.nextLine();
char ch=str2.charAt(0);

int num=str1.indexOf(ch);

if(num !=-1)
System.out.println(str1+"の"+(num+1)+"番目に「"+ch+"」が見つかりました");
else
System.out.println(str1+"に「"+ch+"」はありません");
}
}

これら2つは全く同じ実行結果が得られると思うのですが、
Scanner と BufferedReader の使い分けるべき場合などあるのでしょうか?

A 回答 (2件)

ScannerよりBufferedReaderの方が読み込みが速いです。


しかし既に別の方がお答えされてるようにScannerの方が使い勝手は良いのでそれほど速度を重視しないならScannerでいいと思いますよ。
    • good
    • 0
この回答へのお礼

ありがとうございました。

助かりました。

お礼日時:2011/05/22 03:23

行単位で読み込むだけなら両者の差はあまりありませんが、クラスとしてはScannerのほうがはるかに高機能です。

それぞれが持っているメソッドのリストを見比べてください。
    • good
    • 1
この回答へのお礼

ありがとうございました。

なるほど。
今度からはScannerの方使います。

お礼日時:2011/05/22 01:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!