/*
* 需求1:我要求大家把100這個數據的二進制,八進制,十六進制計算出來
* 需求2:我要求大家判斷一個數據是否是int範圍內的。
*
* 爲了對基本數據類型進行更多的操作,更方便的操作,Java就針對每一種基本數據類型提供了對應的類類型。包裝類類型。
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
*
* 用於基本數據類型與字符串之間的轉換。
*/
public class IntegerDemo {
public static void main(String[] args) {
//int轉換二進制
// public static String toBinaryString(int i)
System.out.println(Integer.toBinaryString(100));
//int轉換八進制
// public static String toOctalString(int i)
System.out.println(Integer.toOctalString(100));
//int轉換16進制
// public static String toHexString(int i)
System.out.println(Integer.toHexString(100));
//取int最大值
// public static final int MAX_VALUE
System.out.println(Integer.MAX_VALUE);
//取int最小值
// public static final int MIN_VALUE
System.out.println(Integer.MIN_VALUE);
}
}
輸出:
1100100
144
64
2147483647
-2147483648
整數轉換成字符串類型:
int n=10;
String s=Integer.toString(n);
System.out.println(s);
輸出:
10
* Integer的構造方法:
* public Integer(int value)
* public Integer(String s)
* 注意:這個字符串必須是由數字字符組成
public class IntegerDemo {
public static void main(String[] args) {
// 方式1
int i = 100;
Integer ii = new Integer(i);
System.out.println("ii:" + ii);
// 方式2
String s = "100";
// NumberFormatException
// String s = "abc";
Integer iii = new Integer(s);
System.out.println("iii:" + iii);
}
}
輸出:
ii:100
iii:100
int和String互換
public class Test_2 {
public static void main(String[] args) {
// int -- String
int number = 100;
// 方式1
String s1 = "" + number;
System.out.println("s1:" + s1);
// 方式2
String s2 = String.valueOf(number);
System.out.println("s2:" + s2);
// 方式3
// int -- Integer -- String
Integer i = new Integer(number);
String s3 = i.toString();
System.out.println("s3:" + s3);
// 方式4
// public static String toString(int i)
String s4 = Integer.toString(number);
System.out.println("s4:" + s4);
System.out.println("-----------------");
// String -- int
String s = "100";
// 方式1
// String -- Integer -- int
Integer ii = new Integer(s);
// public int intValue()
int x = ii.intValue();
System.out.println("x:" + x);
// 方式2
// public static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println("y:" + y);
}
}
輸出:
s1:100
s2:100
s3:100
s4:100
-----------------
x:100
y:100
十進制數的相互轉換
/*
* 常用的基本進制轉換
* 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-36
* 爲什麼呢?0,...9,a...z
*
* 其他進制到十進制
* public static int parseInt(String s,int radix)
*/
public class IntegerDemo {
public static void main(String[] args) {
// 十進制到二進制,八進制,十六進制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("-------------------------");
// 十進制到其他進制
System.out.println(Integer.toString(100, 10));
//10進制100轉換爲2進制數
System.out.println(Integer.toString(100, 2));
System.out.println(Integer.toString(100, 8));
System.out.println(Integer.toString(100, 16));
System.out.println(Integer.toString(100, 5));
System.out.println(Integer.toString(100, 7));
System.out.println(Integer.toString(100, -7));
System.out.println(Integer.toString(100, 70));
System.out.println(Integer.toString(100, 1));
System.out.println(Integer.toString(100, 17));
System.out.println(Integer.toString(100, 32));
System.out.println(Integer.toString(100, 37));
System.out.println(Integer.toString(100, 36));
System.out.println("-------------------------");
//其他進制到十進制
System.out.println(Integer.parseInt("100", 10));
System.out.println(Integer.parseInt("100", 2));
System.out.println(Integer.parseInt("100", 8));
System.out.println(Integer.parseInt("100", 16));
System.out.println(Integer.parseInt("100", 23));
//NumberFormatException
//System.out.println(Integer.parseInt("123", 2));、、報錯
//給出的數值應該在進制的範圍內,例如2進制數字中沒有2,3
}
}
輸出:
1100100
144
64
-------------------------
100
1100100
144
64
400
202
100
100
100
5f
34
100
2s
-------------------------
100
4
64
256
529
Integer 類
/*
* JDK5的新特性
* 自動裝箱:把基本類型轉換爲包裝類類型
* 自動拆箱:把包裝類類型轉換爲基本類型
*
* 注意一個小問題:
* 在使用時,Integer x = null;代碼就會出現NullPointerException。
* 建議先判斷是否爲null,然後再使用。
*/
public class IntegerDemo {
public static void main(String[] args) {
// 定義了一個int類型的包裝類類型變量i
// Integer i = new Integer(100);
Integer ii = 100;
ii += 200;
System.out.println("ii:" + ii);
// 通過反編譯後的代碼
// Integer ii = Integer.valueOf(100); //自動裝箱
// ii = Integer.valueOf(ii.intValue() + 200); //自動拆箱,再自動裝箱
// System.out.println((new StringBuilder("ii:")).append(ii).toString());
Integer iii = null;
// NullPointerException
if (iii != null) {
iii += 1000;
System.out.println(iii);
}
}
}
ii=300
-128到127之間的數據緩衝池問題
/*
* 看程序寫結果
*
* 注意:Integer的數據直接賦值,如果在-128到127之間,會直接從緩衝池裏獲取數據
*/
public class Test_2 {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("-----------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);
System.out.println(i7.equals(i8));
// 通過查看源碼,我們就知道了,針對-128到127之間的數據,做了一個數據緩衝池,如果數據是該範圍內的,每次並不創建新的空間
// Integer ii = Integer.valueOf(127);
}
}
輸出:
false
true
-----------
false
true
-----------
false
true
-----------
true
true
Character類
/*
* Character 類在對象中包裝一個基本類型 char 的值
* 此外,該類提供了幾種方法,以確定字符的類別(小寫字母,數字,等等),並將字符從大寫轉換成小寫,反之亦然
*
* 構造方法:
* Character(char value)
*/
public class CharacterDemo {
public static void main(String[] args) {
// 創建對象
// Character ch = new Character((char) 97);
Character ch = new Character('a');
System.out.println("ch:" + ch);
}
}
a
/*
* public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符
* public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符
* public static boolean isDigit(char ch):判斷給定的字符是否是數字字符
* public static char toUpperCase(char ch):把給定的字符轉換爲大寫字符
* public static char toLowerCase(char ch):把給定的字符轉換爲小寫字符
*/
public class CharacterDemo {
public static void main(String[] args) {
// public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符
System.out.println("isUpperCase:" + Character.isUpperCase('A'));
System.out.println("isUpperCase:" + Character.isUpperCase('a'));
System.out.println("isUpperCase:" + Character.isUpperCase('0'));
System.out.println("-----------------------------------------");
// public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符
System.out.println("isLowerCase:" + Character.isLowerCase('A'));
System.out.println("isLowerCase:" + Character.isLowerCase('a'));
System.out.println("isLowerCase:" + Character.isLowerCase('0'));
System.out.println("-----------------------------------------");
// public static boolean isDigit(char ch):判斷給定的字符是否是數字字符
System.out.println("isDigit:" + Character.isDigit('A'));
System.out.println("isDigit:" + Character.isDigit('a'));
System.out.println("isDigit:" + Character.isDigit('0'));
System.out.println("-----------------------------------------");
// public static char toUpperCase(char ch):把給定的字符轉換爲大寫字符
System.out.println("toUpperCase:" + Character.toUpperCase('A'));
System.out.println("toUpperCase:" + Character.toUpperCase('a'));
System.out.println("-----------------------------------------");
// public static char toLowerCase(char ch):把給定的字符轉換爲小寫字符
System.out.println("toLowerCase:" + Character.toLowerCase('A'));
System.out.println("toLowerCase:" + Character.toLowerCase('a'));
}
}
輸出:
isUpperCase:true
isUpperCase:false
isUpperCase:false
-----------------------------------------
isLowerCase:false
isLowerCase:true
isLowerCase:false
-----------------------------------------
isDigit:false
isDigit:false
isDigit:true
-----------------------------------------
toUpperCase:A
toUpperCase:A
-----------------------------------------
toLowerCase:a
toLowerCase:a
實例:
import java.util.Scanner;
/*
* 統計一個字符串中大寫字母字符,小寫字母字符,數字字符出現的次數。(不考慮其他字符)
*
* 分析:
* A:定義三個統計變量。
* int bigCont=0;
* int smalCount=0;
* int numberCount=0;
* B:鍵盤錄入一個字符串。
* C:把字符串轉換爲字符數組。
* D:遍歷字符數組獲取到每一個字符
* E:判斷該字符是
* 大寫 bigCount++;
* 小寫 smalCount++;
* 數字 numberCount++;
* F:輸出結果即可
*/
public class CharacterTest {
public static void main(String[] args) {
// 定義三個統計變量。
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
// 鍵盤錄入一個字符串。
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
String line = sc.nextLine();
// 把字符串轉換爲字符數組。
char[] chs = line.toCharArray();
// 歷字符數組獲取到每一個字符
for (int x = 0; x < chs.length; x++) {
char ch = chs[x];
// 判斷該字符
if (Character.isUpperCase(ch)) {
bigCount++;
} else if (Character.isLowerCase(ch)) {
smallCount++;
} else if (Character.isDigit(ch)) {
numberCount++;
}
}
// 輸出結果即可
System.out.println("大寫字母:" + bigCount + "個");
System.out.println("小寫字母:" + smallCount + "個");
System.out.println("數字字符:" + numberCount + "個");
}
}
輸出:
請輸入一個字符串:
sdgf45sdfHFGR45HR
大寫字母:6個
小寫字母:7個
數字字符:4個
/*
* 需求1:我要求大家把100這個數據的二進制,八進制,十六進制計算出來
* 需求2:我要求大家判斷一個數據是否是int範圍內的。
*
* 爲了對基本數據類型進行更多的操作,更方便的操作,Java就針對每一種基本數據類型提供了對應的類類型。包裝類類型。
* byte Byte
* short Short
* int Integer
* long Long
* float Float
* double Double
* char Character
* boolean Boolean
*
* 用於基本數據類型與字符串之間的轉換。
*/
public class IntegerDemo {
public static void main(String[] args) {
//int轉換二進制
// public static String toBinaryString(int i)
System.out.println(Integer.toBinaryString(100));
//int轉換八進制
// public static String toOctalString(int i)
System.out.println(Integer.toOctalString(100));
//int轉換16進制
// public static String toHexString(int i)
System.out.println(Integer.toHexString(100));
//取int最大值
// public static final int MAX_VALUE
System.out.println(Integer.MAX_VALUE);
//取int最小值
// public static final int MIN_VALUE
System.out.println(Integer.MIN_VALUE);
}
}
輸出:
1100100
144
64
2147483647
-2147483648
整數轉換成字符串類型:
int n=10;
String s=Integer.toString(n);
System.out.println(s);
輸出:
10
* Integer的構造方法:
* public Integer(int value)
* public Integer(String s)
* 注意:這個字符串必須是由數字字符組成
public class IntegerDemo {
public static void main(String[] args) {
// 方式1
int i = 100;
Integer ii = new Integer(i);
System.out.println("ii:" + ii);
// 方式2
String s = "100";
// NumberFormatException
// String s = "abc";
Integer iii = new Integer(s);
System.out.println("iii:" + iii);
}
}
輸出:
ii:100
iii:100
int和String互換
public class Test_2 {
public static void main(String[] args) {
// int -- String
int number = 100;
// 方式1
String s1 = "" + number;
System.out.println("s1:" + s1);
// 方式2
String s2 = String.valueOf(number);
System.out.println("s2:" + s2);
// 方式3
// int -- Integer -- String
Integer i = new Integer(number);
String s3 = i.toString();
System.out.println("s3:" + s3);
// 方式4
// public static String toString(int i)
String s4 = Integer.toString(number);
System.out.println("s4:" + s4);
System.out.println("-----------------");
// String -- int
String s = "100";
// 方式1
// String -- Integer -- int
Integer ii = new Integer(s);
// public int intValue()
int x = ii.intValue();
System.out.println("x:" + x);
// 方式2
// public static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println("y:" + y);
}
}
輸出:
s1:100
s2:100
s3:100
s4:100
-----------------
x:100
y:100
十進制數的相互轉換
/*
* 常用的基本進制轉換
* 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-36
* 爲什麼呢?0,...9,a...z
*
* 其他進制到十進制
* public static int parseInt(String s,int radix)
*/
public class IntegerDemo {
public static void main(String[] args) {
// 十進制到二進制,八進制,十六進制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("-------------------------");
// 十進制到其他進制
System.out.println(Integer.toString(100, 10));
//10進制100轉換爲2進制數
System.out.println(Integer.toString(100, 2));
System.out.println(Integer.toString(100, 8));
System.out.println(Integer.toString(100, 16));
System.out.println(Integer.toString(100, 5));
System.out.println(Integer.toString(100, 7));
System.out.println(Integer.toString(100, -7));
System.out.println(Integer.toString(100, 70));
System.out.println(Integer.toString(100, 1));
System.out.println(Integer.toString(100, 17));
System.out.println(Integer.toString(100, 32));
System.out.println(Integer.toString(100, 37));
System.out.println(Integer.toString(100, 36));
System.out.println("-------------------------");
//其他進制到十進制
System.out.println(Integer.parseInt("100", 10));
System.out.println(Integer.parseInt("100", 2));
System.out.println(Integer.parseInt("100", 8));
System.out.println(Integer.parseInt("100", 16));
System.out.println(Integer.parseInt("100", 23));
//NumberFormatException
//System.out.println(Integer.parseInt("123", 2));、、報錯
//給出的數值應該在進制的範圍內,例如2進制數字中沒有2,3
}
}
輸出:
1100100
144
64
-------------------------
100
1100100
144
64
400
202
100
100
100
5f
34
100
2s
-------------------------
100
4
64
256
529
Integer 類
/*
* JDK5的新特性
* 自動裝箱:把基本類型轉換爲包裝類類型
* 自動拆箱:把包裝類類型轉換爲基本類型
*
* 注意一個小問題:
* 在使用時,Integer x = null;代碼就會出現NullPointerException。
* 建議先判斷是否爲null,然後再使用。
*/
public class IntegerDemo {
public static void main(String[] args) {
// 定義了一個int類型的包裝類類型變量i
// Integer i = new Integer(100);
Integer ii = 100;
ii += 200;
System.out.println("ii:" + ii);
// 通過反編譯後的代碼
// Integer ii = Integer.valueOf(100); //自動裝箱
// ii = Integer.valueOf(ii.intValue() + 200); //自動拆箱,再自動裝箱
// System.out.println((new StringBuilder("ii:")).append(ii).toString());
Integer iii = null;
// NullPointerException
if (iii != null) {
iii += 1000;
System.out.println(iii);
}
}
}
ii=300
-128到127之間的數據緩衝池問題
/*
* 看程序寫結果
*
* 注意:Integer的數據直接賦值,如果在-128到127之間,會直接從緩衝池裏獲取數據
*/
public class Test_2 {
public static void main(String[] args) {
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
System.out.println("-----------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
System.out.println("-----------");
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));
System.out.println("-----------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);
System.out.println(i7.equals(i8));
// 通過查看源碼,我們就知道了,針對-128到127之間的數據,做了一個數據緩衝池,如果數據是該範圍內的,每次並不創建新的空間
// Integer ii = Integer.valueOf(127);
}
}
輸出:
false
true
-----------
false
true
-----------
false
true
-----------
true
true
Character類
/*
* Character 類在對象中包裝一個基本類型 char 的值
* 此外,該類提供了幾種方法,以確定字符的類別(小寫字母,數字,等等),並將字符從大寫轉換成小寫,反之亦然
*
* 構造方法:
* Character(char value)
*/
public class CharacterDemo {
public static void main(String[] args) {
// 創建對象
// Character ch = new Character((char) 97);
Character ch = new Character('a');
System.out.println("ch:" + ch);
}
}
a
/*
* public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符
* public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符
* public static boolean isDigit(char ch):判斷給定的字符是否是數字字符
* public static char toUpperCase(char ch):把給定的字符轉換爲大寫字符
* public static char toLowerCase(char ch):把給定的字符轉換爲小寫字符
*/
public class CharacterDemo {
public static void main(String[] args) {
// public static boolean isUpperCase(char ch):判斷給定的字符是否是大寫字符
System.out.println("isUpperCase:" + Character.isUpperCase('A'));
System.out.println("isUpperCase:" + Character.isUpperCase('a'));
System.out.println("isUpperCase:" + Character.isUpperCase('0'));
System.out.println("-----------------------------------------");
// public static boolean isLowerCase(char ch):判斷給定的字符是否是小寫字符
System.out.println("isLowerCase:" + Character.isLowerCase('A'));
System.out.println("isLowerCase:" + Character.isLowerCase('a'));
System.out.println("isLowerCase:" + Character.isLowerCase('0'));
System.out.println("-----------------------------------------");
// public static boolean isDigit(char ch):判斷給定的字符是否是數字字符
System.out.println("isDigit:" + Character.isDigit('A'));
System.out.println("isDigit:" + Character.isDigit('a'));
System.out.println("isDigit:" + Character.isDigit('0'));
System.out.println("-----------------------------------------");
// public static char toUpperCase(char ch):把給定的字符轉換爲大寫字符
System.out.println("toUpperCase:" + Character.toUpperCase('A'));
System.out.println("toUpperCase:" + Character.toUpperCase('a'));
System.out.println("-----------------------------------------");
// public static char toLowerCase(char ch):把給定的字符轉換爲小寫字符
System.out.println("toLowerCase:" + Character.toLowerCase('A'));
System.out.println("toLowerCase:" + Character.toLowerCase('a'));
}
}
輸出:
isUpperCase:true
isUpperCase:false
isUpperCase:false
-----------------------------------------
isLowerCase:false
isLowerCase:true
isLowerCase:false
-----------------------------------------
isDigit:false
isDigit:false
isDigit:true
-----------------------------------------
toUpperCase:A
toUpperCase:A
-----------------------------------------
toLowerCase:a
toLowerCase:a
實例:
import java.util.Scanner;
/*
* 統計一個字符串中大寫字母字符,小寫字母字符,數字字符出現的次數。(不考慮其他字符)
*
* 分析:
* A:定義三個統計變量。
* int bigCont=0;
* int smalCount=0;
* int numberCount=0;
* B:鍵盤錄入一個字符串。
* C:把字符串轉換爲字符數組。
* D:遍歷字符數組獲取到每一個字符
* E:判斷該字符是
* 大寫 bigCount++;
* 小寫 smalCount++;
* 數字 numberCount++;
* F:輸出結果即可
*/
public class CharacterTest {
public static void main(String[] args) {
// 定義三個統計變量。
int bigCount = 0;
int smallCount = 0;
int numberCount = 0;
// 鍵盤錄入一個字符串。
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個字符串:");
String line = sc.nextLine();
// 把字符串轉換爲字符數組。
char[] chs = line.toCharArray();
// 歷字符數組獲取到每一個字符
for (int x = 0; x < chs.length; x++) {
char ch = chs[x];
// 判斷該字符
if (Character.isUpperCase(ch)) {
bigCount++;
} else if (Character.isLowerCase(ch)) {
smallCount++;
} else if (Character.isDigit(ch)) {
numberCount++;
}
}
// 輸出結果即可
System.out.println("大寫字母:" + bigCount + "個");
System.out.println("小寫字母:" + smallCount + "個");
System.out.println("數字字符:" + numberCount + "個");
}
}
輸出:
請輸入一個字符串:
sdgf45sdfHFGR45HR
大寫字母:6個
小寫字母:7個
數字字符:4個