1. 程式人生 > >java基礎之輸入輸出,陣列

java基礎之輸入輸出,陣列

檔案輸入輸出:

Scanner(File f)//構造一個從給定檔案讀取資料的Scanner。

Scanner(String data)//構造一個從給定字串讀取資料的Scanner。

PrintWriter(String filename)//構造一個將資料寫入檔案的PrintWriter。

static Path get(String pathname)//根據給定一個路徑名構造一個Path。

例如:

對檔案進行讀取,用file構造一個Scanner物件,如下所示。

Scanner in = new Scanner(Path.get("myfile.txt"))

想寫入檔案就需要構造一個PrintWriter物件。

PrintWriter out = new PrintWriter("myfile.txt")。

輸入和輸出:

輸出:

我們接觸java時可能就對輸出很瞭解了。輸出只需要呼叫System.out.println()方法即可。

輸入:

輸入相對輸出麻煩一點。首先要構造一個Scanner物件,並與標準輸入流System.in關聯。

Scanner in = new Scanner(System.in)

然後就可以呼叫Scanner類的方法。示例:

Public class InputText{

public static void main(String[] args){

Scanner in = new Scanner (System.in);

System.out.println("What is your name?"):

        String name = in.nextLine();      //需要自己鍵入。

System.out.println("How oid are you ?"):

Int age = in.nextInt(); //需要自己鍵入

}

}

陣列:

宣告一個數組:

int[] a;

這條語句只宣告而沒有初始化,應該使用new建立一個數組。

int[] a = new int[100];

建立了一個可以儲存100個整數的陣列。陣列長度不要求是常量:new int[n]會建立一個長度為n的陣列。

String[] name = new String[10]

建立一個數字陣列時,所有元素都為0,boolean陣列所有元素都為false,建立一個字串陣列所有元素初始值都為null。

可用增強for迴圈來遍歷陣列。

for(variable : collection) statement

collection 這個集合必須是一個數組或者是實現了Iterable介面的類或者物件。如(ArriyList)

列印集合a中的元素。

for(int element : a)

  System.out.println(element);

陣列初始化:

int[] smallPrints = {1,2,3,4,5}

new int[] {1,2,3,4,5}

smallPrimes = new int[]{1,2,3,,4,5}

建立一個數組並進行初始化。

陣列拷貝:

int[] luckyNumbers = smallNumbers;

int[] copiedLuckyNumbers = Arrays.copyOf(luckyNumbers,2*luckyNumbers.length)

第二個引數為新陣列的長度;

陣列排序:

要想對數值型數值進行排序,可以使用Arrys類中sort方法,

int[] a = new int[1000]

.........

Arrys.sort(a)

 設計一個程式:

int[] numbers = new int[n];

int[] result = new int[];

for(i=0; i<n;i++)

{  numbers[i]= i+1;

}

for(j=0;j<10;j++)

{

int a = (int)(Math.random()*n);

result[j] = numbers[a];

numbers[a] = numbers[n-1];

n--;

}

Array.sort(result);

for(int element : result)

System.out.println(element);

Arrays還提供了一些其他的方法:

static String toString(type[] a )//返回包含a中資料元素的字串,這些資料元素被放在括號內,並用逗號分隔開。

static type copyOf(type[] a , int length);//

static type copyOf(type[] a , int start, int end);//返回一個與a型別相同的陣列,其長度為length或者end-start,陣列元素為a的值。 start / end分別為起始和終止下標。 length為陣列的長度。

static void sort(type[] a)//對陣列進行排序。

static int binarySearch(type[] a, type v)//

static int binarySearch(type[] a,  int start, int end , type v)//採用二分搜尋演算法查詢V,如果查詢成功則返回相應的下標值,否則,返回一個負數值r

static void fill(type[] a , type v )//將陣列中的所有元素都設定成v。

static boolean equals(type[] a, type[] b);//如果兩個陣列大小相同,並且下標相同的元素都對應相等,返回true。