傳智博客JAVA基礎第十六天
1:String類的三個練習
(1)把字符串按照字符的自然順序排序並輸出。掌握
(2)查找大串中小串的出現次數。
public static int getCount(String fuString,String ziString)
{
int count = 0;
int index = fuString.indexOf(ziString);
while(index!=-1)
{
count++;
fuString = fuString.substring(index+ziString.length());
index = fuString.indexOf(ziString);
}
return count;
}
改進後的代碼:
public static int getCount(String fuString,String ziString)
{
int count = 0;
int index = 0;
//條件不同:在這裏做了三件事情(查,賦值,判斷)
while((index=fuString.indexOf(ziString))!=-1)
{
count++;
fuString = fuString.substring(index+ziString.length());
}
return count;
}
(3)查找兩個字符串中的最大子串。
public static String getSubString(String s1,String s2)
{
String maxString,minString;
maxString = s1.length()>s2.length()?s1:s2;
minString = maxString.equals(s1)?s2:s1;
for(int x=0; x<minString.length(); x++)
{
for(int start=0,end=minString.length()-x; end<=minString.length(); start++,end++)
{
String temp = minString(start,end);
if(maxString.contains(temp))
{
return temp;
}
}
}
return null;
}
2:StringBuffer和StringBuilder(重點)
(1)StringBuffer是字符串緩衝類。可以看成是一個容器。
A:StringBuffer和String的區別
StringBuffer是長度可變的,每次的操作都採用的是同一個空間。
而String長度是固定的,每次操作都是一個新的字符串空間。
B:StringBuffer和數組的區別
StringBuffer是長度可變的,並且可以存儲不同類型的數據。
而數組時長度固定的,只能存儲同一種類型的數據。
(2)StringBuffer構造方法
A:StringBuffer sb = new StringBuffer();
B:StringBuffer sb = new StringBuffer(50);
C:StringBuffer sb = new StringBuffer("hello");
測試了兩個方法:
capacity():指的是緩衝區能夠存儲的元素個數
length():指的是實際存儲的元素個數
(3)StringBuffer的功能方法
A:添加
append:在末尾追加元素
insert:在指定位置添加元素,其後元素後移
B:刪除
deleteCharAt:刪除指定位置的單個字符
delete:刪除從起始位置開始到結束位置的多個字符。
包括左邊,不包括右邊。
C:替換
replace:用新的字符串替換從指定位置開始到結束位置的字符串
D:截取
subString:默認是從指定位置截取到末尾。
如果指定了起始位置和結束位置,那麼就是截取指定長度的字符串。
包括左邊,不包括右邊。
E:反轉
reverse:把字符串的內容進行了反轉
(4)StringBuffer和StringBuilder的區別
StringBuffer是同步的。-- 線程安全的
StringBuilder是不同步的。 -- 線程不安全的。
JDK的升級:
A:效率
B:安全
C:簡寫
3:基本數據類型的包裝類
(1)爲了方便我們對象基本類型進行操作,java就對每種基本類型進行了封裝。
對應封裝類如下
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
好處:舉例
比如說int的最大值,最小值,以及進制轉換變的非常簡單。
(2)Integer的構造方法
A:Integer i = new Integer(100);
B:Integer i = new Integer("100");
注意:字符串變成Integer類型數據的時候,可能會有一個異常。
NumberFormatException。
要求是:這個字符串中只能包含數字字符。
(3)int類型和String類型的轉換(重點)
A:int -- String
int num = 100;
String s = String.valueOf(num)
String s = Integer.toString(num)
B:String -- int
String s = "100";
int i = Integer.parseInt(s);
(4)基本類型包裝類在JDK5以後的新特性
自動裝箱和拆箱的操作。
Integer i = 100; //裝箱 new Integer(100);
i += 200; //拆箱 i.intValue()+200 結果是300
//裝箱 new Integer(300)
注意:Integer最好檢查一下是否爲null。否則會有空指針異常。
(5)Integer的一個小細節
在byte範圍內,直接賦值,值被重用。
Integer i1 = 128;
Integer i2 = 128;
sop(i1==i2); //false
Integer i3 = 127;
Integer i4 = 127;
sop(i3==i4); //true
4:Math類的使用
(1)Math類:沒有構造方法,那麼如何使用方法呢?
A:這個類中的所有屬性和方法都是靜態的。
B:通過單例設計模式在類的功能中提供了一個獲取該類對象的功能。
(2)需要掌握的屬性和方法:
* PI:π的值
* E:自然對數的底數
* abs:返回某個數據的絕對值
* max:返回兩個數中較大的那個
* min:返回兩個數中較小的那個
* sqrt:返回的是正平方根
* cbrt:返回的是立方根
* pow:返回第一個參數的第二個參數次冪的值
* ceil:大於等於參數,的最小整數
* floor:小於等於參數,的最大整數
* round:返回四捨五入一個值
* random:返回一個隨機數,範圍[0.0-1.0)
* 獲取一個1-100直接的隨機數:
* (int)(Math.random() * 100)+1
(1)把字符串按照字符的自然順序排序並輸出。掌握
(2)查找大串中小串的出現次數。
public static int getCount(String fuString,String ziString)
{
int count = 0;
int index = fuString.indexOf(ziString);
while(index!=-1)
{
count++;
fuString = fuString.substring(index+ziString.length());
index = fuString.indexOf(ziString);
}
return count;
}
改進後的代碼:
public static int getCount(String fuString,String ziString)
{
int count = 0;
int index = 0;
//條件不同:在這裏做了三件事情(查,賦值,判斷)
while((index=fuString.indexOf(ziString))!=-1)
{
count++;
fuString = fuString.substring(index+ziString.length());
}
return count;
}
(3)查找兩個字符串中的最大子串。
public static String getSubString(String s1,String s2)
{
String maxString,minString;
maxString = s1.length()>s2.length()?s1:s2;
minString = maxString.equals(s1)?s2:s1;
for(int x=0; x<minString.length(); x++)
{
for(int start=0,end=minString.length()-x; end<=minString.length(); start++,end++)
{
String temp = minString(start,end);
if(maxString.contains(temp))
{
return temp;
}
}
}
return null;
}
2:StringBuffer和StringBuilder(重點)
(1)StringBuffer是字符串緩衝類。可以看成是一個容器。
A:StringBuffer和String的區別
StringBuffer是長度可變的,每次的操作都採用的是同一個空間。
而String長度是固定的,每次操作都是一個新的字符串空間。
B:StringBuffer和數組的區別
StringBuffer是長度可變的,並且可以存儲不同類型的數據。
而數組時長度固定的,只能存儲同一種類型的數據。
(2)StringBuffer構造方法
A:StringBuffer sb = new StringBuffer();
B:StringBuffer sb = new StringBuffer(50);
C:StringBuffer sb = new StringBuffer("hello");
測試了兩個方法:
capacity():指的是緩衝區能夠存儲的元素個數
length():指的是實際存儲的元素個數
(3)StringBuffer的功能方法
A:添加
append:在末尾追加元素
insert:在指定位置添加元素,其後元素後移
B:刪除
deleteCharAt:刪除指定位置的單個字符
delete:刪除從起始位置開始到結束位置的多個字符。
包括左邊,不包括右邊。
C:替換
replace:用新的字符串替換從指定位置開始到結束位置的字符串
D:截取
subString:默認是從指定位置截取到末尾。
如果指定了起始位置和結束位置,那麼就是截取指定長度的字符串。
包括左邊,不包括右邊。
E:反轉
reverse:把字符串的內容進行了反轉
(4)StringBuffer和StringBuilder的區別
StringBuffer是同步的。-- 線程安全的
StringBuilder是不同步的。 -- 線程不安全的。
JDK的升級:
A:效率
B:安全
C:簡寫
3:基本數據類型的包裝類
(1)爲了方便我們對象基本類型進行操作,java就對每種基本類型進行了封裝。
對應封裝類如下
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
好處:舉例
比如說int的最大值,最小值,以及進制轉換變的非常簡單。
(2)Integer的構造方法
A:Integer i = new Integer(100);
B:Integer i = new Integer("100");
注意:字符串變成Integer類型數據的時候,可能會有一個異常。
NumberFormatException。
要求是:這個字符串中只能包含數字字符。
(3)int類型和String類型的轉換(重點)
A:int -- String
int num = 100;
String s = String.valueOf(num)
String s = Integer.toString(num)
B:String -- int
String s = "100";
int i = Integer.parseInt(s);
(4)基本類型包裝類在JDK5以後的新特性
自動裝箱和拆箱的操作。
Integer i = 100; //裝箱 new Integer(100);
i += 200; //拆箱 i.intValue()+200 結果是300
//裝箱 new Integer(300)
注意:Integer最好檢查一下是否爲null。否則會有空指針異常。
(5)Integer的一個小細節
在byte範圍內,直接賦值,值被重用。
Integer i1 = 128;
Integer i2 = 128;
sop(i1==i2); //false
Integer i3 = 127;
Integer i4 = 127;
sop(i3==i4); //true
4:Math類的使用
(1)Math類:沒有構造方法,那麼如何使用方法呢?
A:這個類中的所有屬性和方法都是靜態的。
B:通過單例設計模式在類的功能中提供了一個獲取該類對象的功能。
(2)需要掌握的屬性和方法:
* PI:π的值
* E:自然對數的底數
* abs:返回某個數據的絕對值
* max:返回兩個數中較大的那個
* min:返回兩個數中較小的那個
* sqrt:返回的是正平方根
* cbrt:返回的是立方根
* pow:返回第一個參數的第二個參數次冪的值
* ceil:大於等於參數,的最小整數
* floor:小於等於參數,的最大整數
* round:返回四捨五入一個值
* random:返回一個隨機數,範圍[0.0-1.0)
* 獲取一個1-100直接的隨機數:
* (int)(Math.random() * 100)+1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.