黑馬程序猿——15,String,StringBuffer,基本數據類型包裝對象
------<ahref="http://www.itheima.com" target="blank">Java培訓、Android培訓、iOS培訓、.Net培訓</a>、期待與您交流! -------
??????????
????????????? ??????黑馬程序猿——15,String。基本數據類型包裝對象
/* 字符串相關的練習 */ /* 求兩個字符串中最大的同樣子串。 思路:1。將短的子串依照長度遞減的方式獲取 2,將每次獲取到的子串去長串中推斷是否包含 */ class Zfclx { public static void main(String[] args) { String a="kjesqwersjfnqwg"; String b="ccaaqwerxyhs"; String c= zichuan(b,a); String d= zichuan2(b,a); System.out.println("c="+c); } public static String zichuan(String s1,String s2) { if( s1.length()<s2.length()) { String s3=" "; s3=s1; s1=s2; s2=s3; } String op="";//這裏設定一個變量,用來存儲返回的字符串 String[][] ui=new String[s2.length()][]; w: for(int x=0;x<s2.length();x++) { for(int y=0,z=s2.length()-1-x; z!=s2.length();y++,z++) { if(s1.contains(s2.substring(y,z+1))) { op=s2.substring(y,z+1); soc(op); break w ;//找到之後直接跳出循環 } } } return op; } public static String zichuan2(String s1,String s2) { String max=""; String min=""; max =( s1.length()<s2.length())?s2:s1; min = ( s1.length()<s2.length())?s1:s2; String op=""; String[][] ui=new String[min.length()][]; w: for(int x=0;x<min.length();x++) { for(int y=0,z=min.length()-1-x; z!=min.length();y++,z++) //定義y在左邊指示。定義z在右邊指示 { if(max.contains(min.substring(y,z+1))) { op=min.substring(y,z+1); soc(op); break w ; } } } return op; } public static void soc(Object obj) { System.out.println(obj); } } /* 以上代碼編譯執行結果例如以下: qwer qwer c=qwer */
——————切割線——————
?
?
/* StringBuffer字符串緩沖區的方法介紹 註意:StringBuilder是jdk1.5之後出現的,也相當於一個容器, 其功能和StringBuffer幾乎相同,可是。 StringBuffer是線程同步的(一個線程執行完之後下一個線程才幹夠進來執行) StringBuilder是線程不同步的(能夠多個線程同一時候對其執行) 版本號升級因素:提高效率,簡化書寫。提高安全性 */ class Zfclx3 { public static void main(String[] args) { StringBuffer a=new StringBuffer();//StringBuffer是一個容器,長度能夠變化 StringBuffer a2= a.append(26);//把26加入進去容器裏面再返回容器 soc("a==a2---"+(a==a2));//推斷a與a2是否是同一個對象。打印的是a==a2---true a.append("卡卡").append(false).append(10);//調用鏈 soc(a);//都是以字符串的形式打印26卡卡false10 a.insert(2,"神");//插入操作。在第二位插入 soc(a);//打印26神卡卡false10 //a.insert(200,"神");//角標越界異常 a.delete(5,5);//相當於沒有操作 soc("a---------------"+a); //打印a---------------26神卡卡false10 a.delete(5,7);//剪切第5位到第6位,註意:不包含第七位 soc("剪切後的a="+a);//打印的是剪切後的a=26神卡卡lse10 //a.delete(0,a.length());//清空緩沖區(清空了容器內部) a.deleteCharAt(2);//刪除第二位字符 soc("a.deleteCharAt(2)----"+a); //a.charAt(2);//獲取第二位字符 //a.indexOf("0");//查找字符串中字符0的位置 //a.substring(0,a.length());//獲取從第0位到a.length()-1位的字符串 a.replace(0,3,"kkkk");//把字符串中的第1位到第2位(不包含第3位)替換成kkkk soc("replace---"+a); StringBuffer a3=new StringBuffer("hsjd");//容器裏面裝的是字符串hsjd soc("a3="+a3);//打印的是hsjd soc2(a3); a3.setCharAt(0,‘n‘);//該方法沒有返回值,改動完之後就沒有返回了 soc(a3.toString()); a3.reverse();//反轉 soc("reverse---"+a3); StringBuffer a4=new StringBuffer("abcdefgh"); char[] charsz=new char[8]; a4.getChars(2,5,charsz,1); /* 獲取字符串中第2位到第4位字符(不包含第5位) 然後從charsz數組的第1位開始存放 */ for( int x=0; x<charsz.length; x++ ) { System.out.println("charsz["+x+"]="+charsz[x]); } } public static void soc(Object obj) { System.out.println(obj); } public static void soc2(Object obj) { StringBuffer a= (StringBuffer)obj;//父類強制轉換成子類 a.deleteCharAt(0); System.out.println(a); } } /* 以上代碼編譯執行結果: a==a2---true 26卡卡false10 26神卡卡false10 a---------------26神卡卡false10 剪切後的a=26神卡卡lse10 a.deleteCharAt(2)----26卡卡lse10 replace---kkkk卡lse10 a3=hsjd sjd njd reverse---djn charsz[0]= charsz[1]=c charsz[2]=d charsz[3]=e charsz[4]= charsz[5]= charsz[6]= charsz[7]= */
——————切割線——————
?
/* 基本數據類型的對象包裝類 byte Byte short Short int Integer long Long boolean Boolean float Float double Double char Character */ class Zfclx4 { public static void main(String[] args) { soc("Integer.MAX_VALUE="+Integer.MAX_VALUE);//打印整數類型的最大值 /* 基本數據類型轉成字符串: 基本數據類型+"" 基本數據類型.toString(基本數據類型值); 比如:Integer.toString(25); 字符串轉成數據類型:(除了char以外) xxx a=Xxx.parseXxx(String); 比如:int a= Integer.parseInt("26");//數字型的字符串轉換成int型數據 double a=Double.parseDouble("26.23"); boolean a=Boolean.parseBoolean("true"); short b=Short.parseShort("24"); */ //int b=Integer.parseInt("m123");//數字格式異常,執行出問題 //int b=Integer.parseInt("0x123");//數字格式異常,執行出問題 //int b=Integer.parseInt("123");//數字格式異常。執行出問題 //十進制轉其它進制: String k=Integer.toBinaryString(36); soc("Integer.toBinaryString(36)="+k); String k2=Integer.toHexString(36); soc("Integer.toHexString(36)="+k2); String k3=Integer.toOctalString(36); soc("Integer.toOctalString(36)="+k3); int k6=Integer.parseInt("26"); soc("Integer.parseInt(\"26\")---"+k6); //其它進制轉成十進制 int x= Integer.parseInt("110",10); soc("Integer.parseInt(\"110\",10)---"+x); int x2=Integer.parseInt("110",2); soc("Integer.parseInt(\"110\",2)---"+x2); int x3=Integer.parseInt("110",8); soc("Integer.parseInt(\"110\",8)---"+x3); int x4= Integer.parseInt("110",16); soc("Integer.parseInt(\"110\",16)---"+x4); int x5= Integer.parseInt("1c",16); soc("Integer.parseInt(\"1c\",16)---"+x5); System.out.println("HelloWorld!"); } public static void soc(String obj) { System.out.println(obj); } } /* 以上代碼編譯執行結果: Integer.MAX_VALUE=2147483647 Integer.toBinaryString(36)=100100 Integer.toHexString(36)=24 Integer.toOctalString(36)=44 Integer.parseInt("26")---26 Integer.parseInt("110",10)---110 Integer.parseInt("110",2)---6 Integer.parseInt("110",8)---72 Integer.parseInt("110",16)---272 Integer.parseInt("1c",16)---28 Hello World! */
?
/*
???? 基本數據類型對象包裝的jdk1.5版本號新特性
*/
?
class Zfclx5 { publicstatic void main(String[] args) { //Integer a= new Integer(12); Integer a=12;//與上句效果一樣,可是這裏的12 是一個對象。!! a=a+3;//這句話編譯執行通過,這裏的3是一個int型數據。 /* 這句話過程是這種: 先是a.intValue()+3 然後再把其和賦值給a。再封裝成一個對象 */ Integer b=145; Integer c=145; soc("b==c---"+(b==c));//b==c---false //對象不一樣 Integer b2=127; Integer c2=127; soc("b2==c2---"+(b2==c2));//b==c---true //對象同樣 /* 這裏為何會出現兩種結果? 由於。在新特性中,假設數據沒有超過byte範圍且已經存在就不會再新建對象 假設數值超過了byte範圍且已經存在就須要再新建對象 */ System.out.println("HelloWorld!"); } public static void soc(String str) { System.out.println(str); } }
黑馬程序猿——15,String,StringBuffer,基本數據類型包裝對象