Java 基本程序設計結構
目錄
變量
Java變量主要包含int、long、boolean、double、float等,與C++在這裏基本上相似。
double i;
int j;
boolean m;
long k;
;注意: 在Java中不區分變量的聲明與定義
變量的初始化
聲明一個變量後必須用賦值語句對變量進行顯式初始化,在這裏與C++不同,C++擁有默認初始化,Java用戶必須指定初始化內容。
int i = 666;
boolean m = false;
常量
與C++ const 不同,Java使用final來聲明常量,關鍵字final用來表明這個變量只能被賦值一次,一旦被賦值,就不允許再次更改。
提示:常量一般使用大寫字母表示。
final double PI = 3.14;
final String MY_PER_IMG = "LiYang";
還可以使用static final 來表示類常量。
注意:const雖然不被Java識別但是也作爲了Java的關鍵字,不能使用其進行變量命名。
運算符
數學函數與常量
需要導入的包
import static java.lang.Math.*;
函數名稱 | 說明 | 方法 |
---|---|---|
sqrt | 計算平方和 | Math.sqrt(x) |
pow | 計算次冪 | Math.pow(x,a) |
sin、cos | 三角函數 | Math.sin(x,a) |
exp、log、log10 | 指數函數 | Math.exp(x,a) |
數值類型的轉換
數值轉換幾乎圍繞着小數轉大數的基本原則即可。
虛線表示在轉換上存在精度的損失。
字符串
首先,Java的字符串和C++的字符串存在區別,Java的字符串是不可更改的,也就是說是常量。必須通過變量方式進行更改。
字符串拼接
和C++類似,可以使用 +
號進行字符串拼接。
字符串判斷相等
與C++不同,C++可以通過重載運算符進行判斷,但是Java不可以通過進行判斷,而不可以對==運算符進行重載,必須使用函數equals進行判斷。==判斷的實際是內存的是否相同。
s.equals(x);
空串與null串
空串“”其實就是長度爲0的字符串。與null串不同。空串是一個Java對象,有自己的長度和內容。String還可以存在一個特殊的值也就是null,這代表目前沒有任何一個對象與該變量進行關聯。下面就是判斷一個字符串既不是null也不是空串。
if(str != null && str.length() !=0)
{
//處理字符串
}
String常用API
函數 | 說明 | 使用方法 |
---|---|---|
compareTo | 按字典順序比較字符串 | compareTo(String anotherString) |
compareToIgnoreCase | 不考慮大小寫比較 | 同上 |
indexOf | 返回第一次出現的索引 | indexOf(String str) |
lastIndexOf | 返回最後一次出現的索引 | 同上 |
isEmpty | 判斷字符串長度是否爲0 | isEmpty() |
length | 返回字符串長度 | length() |
replace | 替換字符串,結果返回 | replace(“pig”,“dog”) |
toLowerCase / toUpperCase | 全部轉換爲大寫或者小寫 | toLowerCase() |
trim | 返回字符串副本 | trim() |
valueOf(int/double/long/float) | 不同類型轉字符串 | valueOf(1) |
startsWith | 判斷是否以suffix開始 | startsWith(“Love”) |
endsWith | 判斷是否以suffix結束 | endsWith(“Love”) |
subString | 獲取Java的子字符串 | subString(0,5) |
spilt | 按照正則表達式拆分字符串 | spilt("? |
輸入輸出
輸出相對來說比較簡單,IDEA直接輸入sout即可。
System.out.println("I love you");
輸入相對來說比較麻煩,需要常見Scanner的對象,綁定系統的輸入,從而將系統的輸入保存到流中。
Scanner in = new Scanner(System.in);
String str = in.nextLine();
int i = in.nextInt();
double j = in.nextDouble();
格式化輸出
Java就變得很人性化了,採用了與C語言類似的格式化輸出。
String name = "you";
System.out.print("I love %s",name);
文件輸入輸出
Scanner in = new Scanner(Paths.get("myFile.txt"),"UTF-8");
數組
數組初始化
int[] a = {1,2,3,4,5,6};
int a[] = {1,2,3,4,5,6}; //不推薦
數組拷貝
我們知道數組與對象的拷貝屬於淺拷貝,也就是說其實是共享的數據,拷貝的其實就是C++裏面的地址或者說是指針。
int[] a = {1,2,3,4,6,6};
int[] b = a;
b[0] = 5;
// a[0] 也會變爲5
如果我們希望只是值拷貝,也就是爲變量重新劃分空間,我們可以這樣。
int[] a = Arrays.copyOf(b,b.length());
數組排序
數組排序使用sort函數,類似於C++泛型算法的sort函數。使用的是Arrays.sort函數。
int[] a = {5,3,9,13,9,7,1};
Arrays.sort(a);
for each 循環
這和C++當中的for_each()不同,遍歷整個數組。也可以叫做增強for循環。
for(int i:a)
System.out.println(i);
int[] a = {5,3,9,13,9,7,1};
Arrays.sort(a);
for each 循環
這和C++當中的for_each()不同,遍歷整個數組。也可以叫做增強for循環。
for(int i:a)
System.out.println(i);