Java學習筆記, 不斷更新

數據類型

數據類型 內存空間(1字節=8位)
Boolean 8位/16位
byte 8位
char 16位
short 16位
int 32位
long 64位
float 32位
double 64位

創建字符串String

1、String s = new String({'g','o','o','d'});
2、String s = new String("good");
3、String s = new String({'g','o','o','d'}, 2, 1); // 從2開始取1個
4、String s;
  s = "good";

字符串操作

str.indexOf("g");								// 查找索引位置
str.lastIndexOf("g");						// 查找最後一次出現的索引位置
str.length;											// 字符串長度
str.charAt(index);							// 獲取指定位置的字符
str.substring(beginIndex);			// 獲取子字符串
str.substring(index1, index2);	// 獲取子字符串
str.trim();											// 去除前後空格
str.replace(old, new);					// 字符串替換
str.startsWith(string);					// 判斷字符串的開始
str.endsWith(string);						// 判斷字符串的結尾
str.equals(str2);								// 判斷字符串相等
str.equalsIgnoreCase(str2);			// 忽略大小寫的判斷字符串相等
str.compareTo(str1);						// 比較字符串
str.toLowerCase();							// 轉爲小寫
str.toUpperCase();							// 轉爲大寫
str.split(str);									// 字符串分割
str.format(str, args);					// 格式化字符串

輸入: Scanner()

Scanner scan = new Scanner(System.in)

.hasNext()
判斷是否存在下一個輸入,返回bool類型。

.hasNextInt()
判斷下一個輸入是否爲Int型,返回bool類型。

.next()
取下一個輸入值,遇到結束符停止(空格鍵、Tab鍵或Enter鍵等)。

.nextLine()
取下一行輸入值,遇到Enter鍵停止,可以獲得空白。

字符切割:split()
(1)split表達式,就是一個正則表達式。* ^ | 等符號在正則表達式中屬於一種有特殊含義的字符,如果使用此種字符作爲分隔符,必須使用轉義符即 \ 加以轉義。
(2)如果使用多個分隔符則需要藉助 | 符號,如 “\^|@|#”,但需要轉義符的仍然要加上分隔符進行處理。

使用一個或多個空格分割字符串

str.split("\\s+");

String 轉換成 int

1). int i = Integer.parseInt([String]);//遇到不能被轉換爲整型的字符時,會拋出異常
或
i = Integer.parseInt([String],[int radix]);//radix爲進制數

2). int i = Integer.valueOf(str).intValue();

int 轉換成 String

1.) String s = String.valueOf(i);

2.) String s = Integer.toString(i);

3.) String s = "" + i;

Char[] 轉換成 String

String str = String.copyValueOf(charArray)

String 轉換成 Char[]

char[] arr = str.toCharArray()

String 轉換成 Int[]

int[] arr = Arrays.stream(str.split(" "))
                .mapToInt(Integer::parseInt)
                .toArray();
或
String[] strSplit = str.split(" ");
int[] intArray = new int[strSplit.length];
for(int i=0; i<intArray.length; i++){
    intArray[i] = Integer.parseInt(strSplit[i]);
}

數組[]轉list

List<String> list = Arrays.asList(stringArray);
List<int[]>  list = Arrays.asList(intArray);

float取整

// 1、向下取整:floor
	Math.floor(1.7); // 1
// 2、向上取整:ceil
	Math.ceil(1.3);  // 2
// 3、四捨五入取整:round
	Math.round(1.3); // 1
	Math.round(1.7); // 2  

獲取數組最大值

int max = Arrays.stream(arr).max().getAsInt();

函數迭代示例

// 輸入: 一個整數,當月利潤。
// 輸出: 一個整數,獎金。
// 利潤低於或等於100000元的,獎金可提10%;
// 100000<I≤200000時,低於100000元的部分按10%提成,高於100000元的部分,可提成 7.5%;
// 200000<I≤400000時,低於200000元部分仍按上述辦法提成,(下同),高於200000元的部分按5%提成;
// 400000<I≤600000時,高於400000元的部分按3%提成;
// 600000<I≤1000000時,高於600000元的部分按1.5%提成;
// I>1000000時,超過1000000元的部分按1%提成。從鍵盤輸入當月利潤I,求應發獎金總數。
static double solve(int val)
{
	if (val < 0) return 0;
	if (val <= 100000){
		return (val*0.1);
  }else if (val>100000 && val<=200000){
    return (val-100000)*0.075+solve(val-100000);
  }else if (val>200000 && val<=400000){
    return (val-200000)*0.05+solve(val-200000);
  }else if (val>400000 && val<=600000){
    return (val-400000)*0.03+solve(val-400000);
  }else if (val>600000 && val<=1000000){
    return (val-600000)*0.015+solve(val-600000);
  }else{
    return (val-1000000)*0.01+solve(val-1000000);
  }
}
public static void main(String[] arg)
{
  Scanner scanner = new Scanner(System.in);
  if (scanner.hasNextInt()){
    System.out.println((int)solve(scanner.nextInt()));
  }
}

HashMap方法

.put(Object key,Object value)// 添加元素
.putAll(Collection c) 			 // 添加元素,map1.putAll(map2)
.get(Object key) 						 // 根據鍵來獲取對應的值
.containsKey(Object key) 		 // 檢測是否存在指定key的元素
.containsValue(Object value) // 檢測是否存在指定value的映射
.remove(Object key) 				 // 根據key的值刪除指定的元素
.values()										 // 返回值的集合
.isEmpty()									 // 測試元素是否爲空
.clone() 										 // 返回此HashMap實例的淺層副本:鍵和值本身未克隆
.entrySet()									 // 將映射關係返回到Set中,通過Iterator或foreach輸出,Set<String> set = map1.entrySet();
.keySet()										 // 將映射中所包含的鍵返回到Set中,通過Iterator或foreach輸出,Set<String> set = map1.keySet();
.replace(K key, V oldValue, V newValue) // 替換指定鍵的項
.size() 										 // 返回此映射中的鍵值映射數
.putIfAbsent(K key, V value) // key不存在才put,存在就跳過
.getOrDefault(Object key, V defaultValue) // 返回指定鍵映射到的值,如果此映射不包含鍵的映射,則返回defaultValue  

數組sort排序

1.Array.sort(int[] a) // 直接對數組進行升序排序
2.Array.sort(int[] a , int fromIndex, int toIndex) // 對數組的從fromIndex到toIndex進行升序排序



list集合sort排序

1、降序排列
Collections.sort(list, new Comparator<ResultTypeDesc>() {
  public int compare(ResultTypeDesc o1, ResultTypeDesc o2{
    return o2.getRatio().compareTo(o1.getRatio());
  }
});
  
2、進行升序排列
Collections.sort(list, new Comparator<ResultTypeDesc>() {
  public int compare(ResultTypeDesc o1, ResultTypeDesc o2){
    return o1.getRatio().compareTo(o2.getRatio());
  }
});

倒序輸出

1、list集合:
Collections.reverse(list);

2、字符串:
StringBuffer stringBuffer = new StringBuffer(str);
stringBuffer.reverse();

捕捉異常

try{
  // 程序代碼塊
}
catch(Exception e){
  e.printStackTrace();  // 打印異常信息
  // 異常處理代碼塊
}
finally{
  // 始終執行代碼塊
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章