1. 程式人生 > >Java學習(一)

Java學習(一)

exc 換行符 種類型 ati short style {} package gpo

在Eclipse中使用快捷鍵:

main+ Alt+/ 得到publi static void main(String[] args){}

sysout+Alt+/ 得到System.out.println();

編寫hello world。主要是輸入輸出字符串。

package helloWorld;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;


public class HelloWorld {

    
public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello world!");// 輸出流 System.err.println("請輸入一個錯誤信息:");// 錯誤流 // 創建文本掃描器,掃描輸入的一行文本,遇到‘\n‘終止 Scanner scanner = new Scanner(System.in); //Scanner的用法 /** * 利用scanner讀取字符
*/ String line = scanner.nextLine(); System.out.print(line); int i=scanner.nextInt(); System.out.println(i); double d=scanner.nextDouble(); System.out.println(d); /** * 利用System.in.read()讀取字符 */ int ci = 0;//整型需要初始化
char c= ;//字符需要初始化 try { ci = System.in.read();// 將ASC碼轉換成int型字符串 c=(char)System.in.read(); } catch (IOException e) { e.printStackTrace(); } System.out.println(ci); System.out.println(c); /** * 利用bufferdReader讀取數據 */ String s1 = null; String s2=null; BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); try { //讀入一行字符串 s1 = read.readLine(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } System.out.println(s1); System.out.println(Integer.parseInt(s2));

Scanner與BufferedReader的區別:

 1 /**
 2          * 
 3          * 
 4          * BufferedReader與Scanner的區別
 5          */
 6         Scanner scanner1 =new Scanner(System.in);
 7         int s1=scanner1.nextInt();
 8         String s2=scanner1.nextLine();
 9         System.out.println(s1+s2);
10         
11         BufferedReader read1=new BufferedReader(new InputStreamReader(System.in));
12         String s3=null;
13         String s4=null;
14         try
15         {
16         s3=read1.readLine();
17         s4=read1.readLine();
18         }catch(IOException e){
19             e.printStackTrace();
20         }
21         System.out.println(s3+s4);

在Scanner中next.XXX有七種類型,nextInt、nextFloat、nextDouble 、nextByte、nextShort、nextLong、nextBoo\ean,在其後面接nextLine時會造成nextLine讀取換行符‘\n’,即讀取字符無效。

只有再接一個nextLine才能解除這種局面。這與C語言中的scanf的用法一致。但BufferedReader不存在此問題。

除了上述問題,Scanner與BufferedReader還有如下不同:

1.BufferedReader可以用於多線程的輸入,而Scanner不能。

2.BufferedReader是從緩存中讀取數據,緩存大小為8K,而Scanner的緩存只有1K。

3.BufferedReader是直接從緩存中讀取數據流中的字符,而Scanner是將數據流中字符進行轉碼。那麽前者比後者速度更快。

Java學習(一)