1. 程式人生 > >java中的一些函式和學習ACM (一)

java中的一些函式和學習ACM (一)

注意 : 用JAVA 交題時, 類名要用Main, 不要加包名, 要加引用的javaAPI. import那些.

1 : 判斷兩個字串是否相等
在java中,用的是equals();
例:A字串和B字串比較:
if(A.equals(B)){
}
返回truefalse.
Stringequals 方法用於比較兩個字串是否相等。由於字串是物件型別,所以不能用簡單的“==”判斷。而使用equals比較兩個物件的內容是否相等.
注意:
equals()比較的是物件的內容(區分字母的大小寫格式),但是如果使用“==”比較兩個字串物件時,比較的是兩個字串對
象的記憶體地址,所以不相等。即使它們內容相等,但是不同物件的記憶體地址也是不相同的.
equalsIgnore()也是這樣的用法(不區分大小寫). 注意 : 最好括號中放要比較的字串.
2 : Arrays類
在JAVA中, 有許多的包可以使用來更好的開發程式, 其中java.util包就很有用, 裡面有常見的Scanner類, 用於鍵盤
讀入. 其中也有Arrays類, 裡面提供了一些陣列的常用操作. 
排序 的 : Arrays.sort(陣列名);
二分查詢 : Arrays.binarySearch(陣列名, 要查詢的元素); //沒找到返回-1, 找到了返回元素所在陣列的位置(即下標,從0開始).

注 : 這裡的排序只能升序, 要想降序只能這樣 : Arrays
.sort(num,Collections.reverseOrder());
3 :  java讀入資料中nextLine()和next()的區別
區別: 
next()讀取到有效字元後才可以結束輸入,對輸入有效字元之前遇到的空格鍵、Tab鍵或Enter鍵等結束符,
next()方法會自動將其去掉,只有在輸入有效字元之後,next()方法才將其後輸入的空格鍵、Tab鍵或Enter鍵
等視為分隔符或結束符。 
nextLine()方法的結束符只是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字元,它是可以得到帶空
格的字串的.

比如:
Scanner scanner = new
Scanner(System.in); String s = scanner.nextLine(); System.out.println(s); Scanner scanner = new Scanner(System.in); String s = scanner.next(); System.out.println(s); 如果在控制檯上輸入” hello” ,則上方打印出來的是” hello”, 而下方是 “hello”,自動捨去了有效字元前的空格.

4 : Java 中的大數類BigInteger的解釋(下面的BigDecimal與這個類似)
要用這個類, 必須加上標頭檔案, import java.math.*;
也不能更直接將一個int型 賦給一個BigInteger型, 必須通過這個函式BigInteger.valueOf(x);來轉換.
拿來處理高精度整數.(注意, 高精度之間不能直接用四則運算來完成運算, 必須通過呼叫函式來進行.)
這篇部落格講的很好

5 : BigDecimal的解釋    用於高精度小數運算.
Java在java.math包中提供的API類BigDecimal,用來對超過16位有效位的數進行精確的運算。雙精度浮點型
變數double可以處理16位有效數。在實際應用中,需要對更大或者更小的數進行運算和處理。floatdouble
只能用來做科學計算或者是工程計算,在商業計算中要用java.math.BigDecimal。BigDecimal所建立的是對
象,我們不能使用傳統的+、-、*、/等算術運算子直接對其物件進行數學運算,而必須呼叫其相對應的方法.
方法中的引數也必須是BigDecimal的物件。構造器是類的特殊方法,專門用來建立物件,特別是帶有引數的
物件. 即拿來處理高進度小數!!! 具體一些函式自己去看嘍.

//具體怎麼實現請看eclipse中你的程式碼.