常用類(三)

 Integer Character Arrays BigDecimal/BigInteger Calendar
數組的排序方式及二分折半查找

一、Integer(方法補充)
 1、十進制轉換其他進制方法
  public static String toBinaryString(int i):二進制
  public static String toOctalString(int i):八進制
  public static String toHexString(int i):十六進制
  public static String toString(int i, int radix)其他進制
 2、其他進制轉換十進制
  String s :s必須是數字字符串
  public static Integer valueOf(String s, int radix)
  //獲取Integer類型的最大值
    System.out.println(Integer.MAX_VALUE);
二、Character類 —— char的包裝類
 1、構造方法
  public Character(char value)
  構造一個新分配的 Character 對象,用以表示指定的 char 值。
 2、常用方法:
  public static boolean isDigit(char ch)確定指定字符是否爲數字。  
  public static boolean isLowerCase(char ch)確定指定字符是否爲小寫字母。
  public static boolean isUpperCase(char ch)確定指定字符是否爲大寫字母
  public static char toLowerCase(char ch):把字符轉換成小寫
  public static char toUpperCase(char ch):把字符轉換成大寫
  
  egg:鍵盤錄入一個字符串,統計該字符串中出現的大寫字母,小寫字母,數字字符有多少個,多少其他字符。
 wKioL1l7V26QgL4CAACdZ_FjrZI150.png

三、數組的排序和查找
 1、冒泡排序
  數組內元素前後兩兩作比較,大的放後面,小的放前面,從最大索引處依次向前確定元素順序;
   public static void bubblesort(int[] arr){
    for(int x = 0;x < arr.length -1;x++){
     for(int y = 0;y < arr.length - 1 -x;y++){
      if(arr[y] > arr[y + 1]){
       int i = arr[y];
       arr[y] = arr[y + 1];
       arr[y + 1] = i; 
      }
     }
    }
   }

 2、選擇排序
  從數組第一個元素開始依次與後面的值作比較與較小值位置互換,直到一輪結束,確定最小索引處的最小值,從最小索引處依次向後確定元素順序;
   public static void choose(int[] arr){
    for(int x = 0;x < arr.length - 1;x++){
     for(int y = x + 1;y < arr.length;y++){
      if(arr[x] > arr[y]){
       int i = arr[x];
       arr[x] = arr[y];
       arr[y] = i;
      }
     }
    }
   }

 3、數組的二分查找(折半查找)
  確定數組的最中間索引處的元素值,與需要查找的值作比較,若大,取前半段,若小,取後半段,再確定新的中間索引處的元素值,作同樣比較,循環直到與需要查找的值相等輸出該索引;
   public static int find(int[] arr,int sub){
    int max = arr.length - 1;
    int min = 0;
    int mid = (max + min)/2;
    while(arr[mid] != sub){
     if(arr[mid] < sub){
      min = mid; 
      mid = (max + min)/2;
     }else if(arr[mid] > sub){
      max = mid;
      mid = (max + min)/2;
     }
     if(max - min == 1){
      mid = -1;
      break;
     }
    }
    return mid;
   }

四、Arrays類 —— 對數組一些操作方法
  public static String toString(int[] a):將int類型的數組轉換成字符串類型
    public static void sort(int[] a)對指定的 int 型數組按數字升序進行排序。
    public static int binarySearch(int[] a,int key):二分查找
  
  import java.util.Arrays;
  import java.util.Scanner;
   egg:鍵盤錄入數組,遍歷後排序,再遍歷後查找所需的值在排序後的數組中的索引;
    public class ArraysFind {
     public static void main(String[] args) {
      Scanner s = new Scanner(System.in);
      System.out.println("輸入數組的長度:");
      int[] arr = new int[s.nextInt()];
      for(int i = 0;i < arr.length;i++){
       System.out.println("請輸入第" + (i + 1) + "個元素");
       arr[i] = s.nextInt();
      }
      //將數組轉換成字符串輸入
      System.out.println("原始數組:" + Arrays.toString(arr));
      //排序,後並輸出
      Arrays.sort(arr);
      System.out.println("排序後數組:" + Arrays.toString(arr));
      //二分查找
      System.out.println("輸入需要查找索引的元素:");
      System.out.println(Arrays.binarySearch(arr, s.nextInt()));
     }
    }
五、BigDecimal/BigInteger
 1、BigDecimal:float類型和double類型(浮點類型)
  1)作用:不可變的、任意精度的有符號十進制數 :讓運算更精確!
  2)BigDecimal構造方法
     public BigDecimal(String val)
  3)常用方法(加減乘除):
   public BigDecimal add(BigDecimal augend)
   public BigDecimal subtract(BigDecimal subtrahend)
   public BigDecimal multiply(BigDecimal multiplicand)
   public BigDecimal divide(BigDecimal divisor)
   public BigDecimal divide(BigDecimal divisor, int scale,int roundingMode)
    參數: BigDecimal divisor:商
      int scale:有幾位小數
      int roundingMode:以什麼樣的模式舍入//BigDecimal.ROUND_HALF_UP  詳見API
 2、BigInteger:
  1)作用:可以讓超出Integer類型的範圍的數據進行計算
  2)BigInteger的構造方法:
    public BigInteger(String val) val(數字字符串)
  3)常用方法(加減乘除):
      public BigInteger add(BigInteger val)
      public BigInteger subtract(BigInteger val)
      public BigInteger multiply(BigInteger val)
      public BigInteger divide(BigInteger val)
    public BigInteger[] divideAndRemainder(BigInteger val):返回的數組是商和餘數
六、Calendar(日曆類)——是一個抽象類
 1、實例化
  Calendar c = Calendar.getInstance() ;//創建子類對象的方法
 2、c常用方法
  public int get(int field)返回給定日曆字段的值
   field: YEAR:年
     MONTH:月
     DATE:日
    public abstract void add(int field, int amount)根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量
    public final void set(int year, int month,int date):設置新的日曆時間
  
   import java.util.Calendar;
   import java.util.Scanner;

   //鍵盤錄入一個年份,獲取任意一年的二月有多少天
 wKioL1l7WATDyN4eAABbpSZe8yk168.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章