整形,字元、字串三者的關係
阿新 • • 發佈:2022-04-02
-
整形與字串相互轉化
int i = 56; String str = String.valueOf(i); // 整形--》字串 int k = Integer.parseInt(str) + 10; // 字串--》整形 // 等價於Integer.parseInt(str,10) 預設是10進位制 ,如果str是2進位制,就需要設定為2 Integer.parseInt(str,2) 表示將一個2進位制的字串,轉成整型數字 String hStr = Integer.toHexString(num); // 將一個整型數字轉成16進位制字串 String bStr = Integer.toBinaryString(num); // 將一個整型數字轉成2進位制字串
-
整形與字元相互轉化
int m = 65; char c = (char) m; // 數字--》字元 char c2 = 'H'; int l = (int) c2; //字元--》數字
-
字元與字串相互轉換
char d='M'; String s1=d+""; // 第1種 字元--》字串 String s2=String.valueOf(d); // 第2種 字元--》字串 StringBuffer bf=new StringBuffer(); bf.append(d); String s3=bf.toString(); // 第3種 字元--》字串 String sss="shdgaj"; char[]ch=sss.toCharArray(); // 字串--》字元
-
判斷兩個字串是否只包含相同的字元
解釋:這裡使用char在ASCII表中,索引值的差值,小寫字母一共26個,用當前字母與‘a’作差,‘A’-‘0’表示字元A的ASCII值65與‘0’的ASCII值48的差值為17,boolean型別的初始值是false
//1、判斷兩個字串是否只包含相同的字元 public static boolean isSameChar(String s1, String s2) { // 這兩個字串自包含小寫字母, boolean[] arr = new boolean[26]; // 比較包含任意字元的 boolean[] arr = new boolean[128]; for (int i = 0; i < s1.length(); i++) { arr[s1.charAt(i) - 'a'] = true; // arr[s1.charAt(i) -'\0'] = true; } for (int i = 0; i < s2.length(); i++) { if (!arr[s2.charAt(i) - 'a']) { // if (!arr[s2.charAt(i) - '\0']) return false; } } return true; }
ASCII表0~127,一般我們會初始化一個128大小的陣列,
如果想得到某個字元在ASCII中的索引,可用該字元減去空字元(注意java空字元不能直接寫成‘’,用‘\0’)
public static void main(String[] args) { System.out.println('A'-0); //直接減去數字0, 獲取A在ASCII中的索引 或者直接強轉(int)‘a’ System.out.println('A'-'\0'); //減去數字‘\0’, 獲取A在ASCII中的索引 System.out.println('A'-‘’); //這種寫法會報錯 }
-
快速計算陣列的和
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int sum = Arrays.stream(arr).sum(); System.out.println(sum);
Ayyays.stream()方法返回指定陣列作為源的順序流。對於 int,long,double和object型別,stream方法都有過載方法。再調stream的sum()方法可以快速求和