精華筆記:
- String:
- String的常用方法:
- length():獲取字串的長度(字符個數)
- trim():去除當前字串兩邊的空白字符
- toUpperCase()/toLowerCase():將當前字串中的英文部分給轉換為全大寫/全小寫
- startsWith()/endsWith():判斷當前字串是否是以給定的字串開始的/結束的
- charAt():回傳當前字串指定位置上的字符----根據位置找字符
- indexOf()/lastIndexOf():檢索給定字串在當前字串中第一次/最后一次出現的位置,根據字串找位置
- substring():截取當前字串中指定范圍內的字串(含頭不含尾--包含start,但不包含end)
- 靜態方法valueOf():將其它資料型別轉換為String
- StringBuilder:
- 由于String是不變物件,每次修改內容都會創建新的物件,因此String不適合頻繁修改操作,為了解決這個問題,java提供了StringBuilder類,
- StringBuilder是專門用于修改字串的一個類,內部維護一個可變的char陣列,所做操作都是在這個陣列之上進行的,修改速度、性能非常優秀,并且提供了修改字串的常見方式:增、刪、改、插
- StringBuilder的常用方法:
- append():增加內容-----------------增
- delete():洗掉部分內容-------------刪
- replace():替換部分內容-----------改
- insert():插入內容--------------------插
筆記:
-
String:
/* 常見面試題: String s = new String("hello"); 問:如上陳述句創建了幾個物件? 答:2個 第一個:字面量"hello" ----java會創建一個String物件表示字面量"hello",并將其存入常量池 第二個:new String() ----new String()時會再創建一個字串物件,并參考hello字串的內容 */ String s = new String("hello"); //創建2個物件 String s1 = "hello"; //復用常量池中的字面量物件 System.out.println("s:"+s); //s:hello System.out.println("s1:"+s1); //s1:hello System.out.println(s==s1); //false,==比較的是地址是否相同 //在實際應用中,String比較相等一般都是比較字串內容是否相等 //因此我們需要使用equals()方法來比較兩個字串的內容是否相同 System.out.println(s.equals(s1)); //true,equals()比較的是內容是否相同 /* String s1 = "123abc"; //堆中有一個123abc字面量物件,同時快取到常量池中 //編譯器在編譯時,若發現是兩個字面量相連,則會直接連接好并將結果保存起來 //如下陳述句相當于: String s2 = "123abc"; String s2 = "123"+"abc"; //直接復用常量池中的物件 System.out.println(s1==s2); //true String s3 = "123"; //因為s3是一個變數,所以在編譯期并不會直接連接好 String s4 = s3+"abc"; //創建一個新的物件存盤123abc System.out.println(s4==s1); //false */ -
String的常用方法:
-
length():獲取字串的長度(字符個數)
public class LengthDemo { public static void main(String[] args) { String str = "我愛Java!"; int len = str.length(); //獲取str的長度 System.out.println(len); //7 } } -
trim():去除當前字串兩邊的空白字符
public class TrimDemo { public static void main(String[] args) { String str = " hello world "; System.out.println(str); // hello world str = str.trim(); //去除str兩邊的空白字符,并將去除之后的新的物件存盤到str中 System.out.println(str); //hello world } } -
toUpperCase()/toLowerCase():將當前字串中的英文部分給轉換為全大寫/全小寫
public class ToUpperCaseDemo { public static void main(String[] args) { String str = "我愛Java!"; String upper = str.toUpperCase(); //將str中英文部分轉換為全大寫,存到upper中 System.out.println(upper); //我愛JAVA! String lower = str.toLowerCase(); //將str中英文部分轉換為全小寫,存到lower中 System.out.println(lower); //我愛java! } } -
startsWith()/endsWith():判斷當前字串是否是以給定的字串開始的/結束的
public class StartsWithDemo { public static void main(String[] args) { String str = "thinking in java"; //java編程思想(經典書) boolean starts = str.startsWith("think"); //判斷str是否是以think開頭的 System.out.println(starts); //true boolean ends = str.endsWith(".png"); //判斷str是否是以.png結尾的 System.out.println(ends); //false } } -
charAt():回傳當前字串指定位置上的字符----根據位置找字符
public class CharAtDemo { public static void main(String[] args) { // 111111---和下面的連起來10/11/12/13/14/15 // 0123456789012345 String str = "thinking in java"; char c = str.charAt(9); //獲取str中下標9所對應的字符 System.out.println(c); //i } } -
indexOf()/lastIndexOf():檢索給定字串在當前字串中第一次/最后一次出現的位置,根據字串找位置
public class IndexOfDemo { public static void main(String[] args) { // 111111 // 0123456789012345 String str = "thinking in java"; int index = str.indexOf("in"); //檢索in在str中第1次出現的位置 System.out.println(index); //2 //從下標為3的位置開始找in第1次出現的位置 index = str.indexOf("in",3); System.out.println(index); //5 index = str.indexOf("abc"); //若字串在str中不存在,則回傳-1 System.out.println(index); //-1 index = str.lastIndexOf("in"); //找in最后一次出現的位置 System.out.println(index); //9 } } -
substring():截取當前字串中指定范圍內的字串(含頭不含尾--包含start,但不包含end)
public class SubstringDemo { public static void main(String[] args) { // 1 // 01234567890 String str = "www.tedu.cn"; String name = str.substring(4,8); System.out.println(name); //tedu name = str.substring(4); //從下標4開始一直到末尾 System.out.println(name); //tedu.cn } } -
靜態方法valueOf():將其它資料型別轉換為String
public class ValueOfDemo { public static void main(String[] args) { int a = 123; String s1 = String.valueOf(a); //將int型變數a轉換為String型別并賦值給s1 System.out.println(s1); //123---字串型別 double b = 123.456; String s2 = String.valueOf(b); //將double型變數b轉換為String型別并賦值給s2 System.out.println(s2); //123.456---字串型別 String s3 = b+""; //任何型別與字串相連,結果都變為字串型別,效率低(一會講) System.out.println(s3); //123.456---字串型別 } }
-
-
StringBuilder:
-
由于String是不變物件,每次修改內容都會創建新的物件,因此String不適合頻繁修改操作,為了解決這個問題,java提供了StringBuilder類,
-
StringBuilder是專門用于修改字串的一個類,內部維護一個可變的char陣列,所做操作都是在這個陣列之上進行的,修改速度、性能非常優秀,并且提供了修改字串的常見方式:增、刪、改、插
public class StringStringBuilderDemo { public static void main(String[] args) { StringBuilder s = new StringBuilder("a"); for(int i=0;i<10000000;i++) { //1000萬次 s.append(i); } System.out.println("執行完畢"); /* //String不適合頻繁修改內容(效率低) String s = "a"; for(int i=0;i<10000000;i++){ //1000萬次 s = s+i; //每次修改都會在記憶體中分配新的物件 } System.out.println("執行完畢"); */ } }
-
-
StringBuilder的常用方法:
-
append():增加內容-----------------增
-
delete():洗掉部分內容-------------刪
-
replace():替換部分內容-----------改
-
insert():插入內容--------------------插
//StringBuilder的演示 public class StringBuilderDemo { public static void main(String[] args) { String str = "好好學習Java"; //復制str的內容到builder中--------好好學習Java StringBuilder builder = new StringBuilder(str); //append():追加內容-----在末尾追加 builder.append(",為了找個好作業"); System.out.println(builder); //好好學習Java,為了找個好作業 //replace():替換部分內容(含頭不含尾) //將下標為9到15的內容替換為---就是為了改變世界 builder.replace(9,16,"就是為了改變世界"); System.out.println(builder); //好好學習Java,就是為了改變世界 //delete():洗掉部分內容(含頭不含尾) builder.delete(0,8); //洗掉下標為0到7的 System.out.println(builder); //,就是為了改變世界 //insert():插入內容 builder.insert(0,"活著"); //在下標為0的位置插入活著 System.out.println(builder); //活著,就是為了改變世界 /* //StringBuilder的創建方式: StringBuilder builder1 = new StringBuilder(); //空字串 StringBuilder builder2 = new StringBuilder("abc"); //abc串 String str = "abc"; StringBuilder builder3 = new StringBuilder(str); //abc串 String str2 = builder3.toString(); //將builder3轉換為String型別 */ } }
-
補充:
-
字串內容若做查看操作,那建議用String------------------------------實際應用中一般都是查看
字串內容若需要做頻繁修改操作,那建議用StringBuilder
-
StringBuilder和StringBuffer的區別:-----現在先不要糾結,我先寫著,學完執行緒之后才能理解
- StringBuilder:非執行緒安全的,并發處理的,性能稍快
- StringBuffer:執行緒安全的,同步處理的,性能稍慢
-
getter/setter
public class Point { //很多框架都是基于getter/setter來取值、賦值的----一種習慣 private int x; private int y; public int getX(){ //getter獲取值 return this.x; } public void setX(int x){ //setter設定值 this.x = x; } public int getY(){ return this.y; } public void setY(int y){ this.y = y; } } //getter/setter的演示 public class GetterSetterDemo { public static void main(String[] args) { Point p = new Point(); p.setX(100); p.setY(200); System.out.println(p.getX()+","+p.getY()); } } -
檔案注釋:
-
是功能性的注釋,描述類的功能是什么、方法是干什么的、常量的功能是什么
-
一般寫類、方法、常量的上面
/** * 用于演示檔案注釋 * @author WKJ */ public class DocDemo { /** * 表示視窗的寬 */ public static final int WIDTH = 641; /** * 計算兩個整數的和 * @param num1 第1個加數 * @param num2 第2個加數 * @return 回傳num1與num2的和 */ public static int plus(int num1,int num2){ return num1+num2; } }
-
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/501443.html
標籤:其他
上一篇:Javaweb06-JDBC
