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。