Object类和String类
生活随笔
收集整理的這篇文章主要介紹了
Object类和String类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Object類
Object類是Java語言中的根類,即所有類的父類。
equals方法
返回值類型為:boolean類型
用于比較兩個對象是否相同,它其實就是使用兩個對象的內存地址在比較。
例子:
package com.oricle.object;public class Person extends Object{private String name;private int age;public Person(){}public Person( String name,int age){this.age=age;this.name=name;}//復寫父類的equals方法,實現自己的比較方式public boolean equals(Object obj) {//判斷對象是否為空if(obj ==null){return false;}//判斷當前調用equals方法的對象和傳遞進來的對象是否是同一個if(obj ==this){return true;}//判斷傳遞進來的對象是否是Person類型if(obj instanceof Person){//將obj向下轉型為Perosn引用,訪問其屬性Person p=(Person)obj;return this.age==p.age;}return false;}}測試類:
package com.oricle.object;import java.util.ArrayList;public class Demo01 {public static void main(String[] args) {Person p1=new Person("江小魚",3);Person p2=new Person("花無缺",3);System.out.println(p1==p2);//判斷兩個對象地址相等System.out.println(p1.equals(p2));//重寫后判斷內容相等 }}注意:在復寫Object中的equals方法時,一定要注意public boolean equals(Object obj)的參數是Object類型,在調用對象的屬性時,一定要進行類型轉換,在轉換之前必須進行類型判斷。
toString方法
返回該對象的字符串表示,其實該字符串內容就是對象的類型+@+內存地址值。
由于toString方法返回的結果是內存地址,而在開發中,經常需要按照對象的屬性得到相應的字符串表現形式,因此也需要重寫它。如下:
package com.oricle.object;public class Person extends Object{private String name;private int age;public Person(){}public Person( String name,int age){this.age=age;this.name=name;}//復寫父類的equals方法,實現自己的比較方式public boolean equals(Object obj) {//判斷對象是否為空if(obj ==null){return false;}//判斷當前調用equals方法的對象和傳遞進來的對象是否是同一個if(obj ==this){return true;}//判斷傳遞進來的對象是否是Person類型if(obj instanceof Person){//將obj向下轉型為Perosn引用,訪問其屬性Person p=(Person)obj;return this.age==p.age;}return false;}//重寫toString方法public String toString() {return "name:"+name;}}測試類:
package com.oricle.object;import java.util.ArrayList;public class Demo01 {public static void main(String[] args) {Person p1=new Person("江小魚",3);Person p2=new Person("花無缺",3);System.out.println(p1==p2);System.out.println(p1.equals(p2)); //重寫toString方法System.out.println(p1.toString());}}結果如下:
?String類
?構造方法
把字節數組作為對象的內容
package com.oricle.String;public class Gouzao {public static void main(String[] args) {//48為0,97為a,65為Abyte[] bytes={97,98,99,100};String str =new String (bytes);String str2 =new String (bytes,1,2);//創建String對象,把一部分數組元素作為字符串的內容,//參數offset為數組元素的起始索引位置,參數length為要幾個元素 System.out.println(str);System.out.println(str2);}}
結果:
創建String對象,把字符串數組元素作為字符串的內容
char[] chs = new char[]{'a','b','c','d','e'};String s4 = new String(chs); //創建String對象,把數組元素作為字符串的內容String s5 = new String(chs, 0, 3);//創建String對象,把一部分數組元素作為字符串的內容,//參數offset為數組元素的起始索引位置,參數count為要幾個元素 System.out.println(s4);System.out.println(s5);
結果:
創建String對象str,字符串內容為sre,判斷是否與已存在字符串ss相等,
String ss="sre";String str=new String("sre");System.out.println(ss.equals(str));結果為true,String類進堆,優先創建內存,然后調用內容相同已經有的字符串地址,不會再開新的內存,節省空間
String類中的方法查找
package com.oricle.String1;public class Demo1 {public static void main(String[] args) {// TODO Auto-generated method stubchar[] ch={'a','b','c','d','e'};String str=new String(ch);System.out.println(str);int len=str.length();System.out.println(len);//截取String s1=str.substring(2);//從起始位置一直截取到最后 System.out.println(s1);//總起始位置截取到結束位置(包頭不包尾,順序不能亂)System.out.println(str.substring(2, 4));//檢索開頭字母String st="IloveJava";String s2="Il";String s3="Java";System.out.println(st.startsWith(s2));//開頭System.out.println(st.endsWith(s3));//結尾//判斷字符串中是否包含子字符串String s4="i love java java";String s5="java";System.out.println(s4.contains(s5));//indexof 如果沒有該字符串則返回-1 System.out.println(s4.indexOf(s5));//將字符串轉成字節/字符數組String s6="你是人則很難";/*byte[] b1=s6 .getBytes();for(int i=0;i<b1.length;i++){System.out.print(b1[i]+"");}char[]c1=s6.toCharArray();for(int i=0;i<c1.length;i++){System.out.println(c1[i]+"");}*/for(int i=0;i<s6.length();i++){byte[] b1=s6 .getBytes();System.out.print(b1[i]+"");char[]c1=s6.toCharArray();System.out.println(c1[i]+"");}//判斷字符串內容是否相同String s8="Oricle";String s9="oricle";System.out.println(s8.equals(s9));System.out.println(s8.equalsIgnoreCase(s9));//tostring System.out.println(s8.toString());//tolowercase System.out.println(s8.toLowerCase());//touppercase System.out.println(s9.toUpperCase());}}?
練習題目:
package com.oricle.String1;public class Demo1 {public static void main(String[] args) {// TODO Auto-generated method stubgetnum("ORIclee12345");getword("fainlFAF");getci();}//1.獲取指定字符串中,大寫字母、小寫字母、數字的個數。public static void getnum(String str){int big=0,small=0,number=0; // String s10="ORIcle1234"; // char[]c2=s10.toCharArray();for(int i=0;i<str.length();i++){char c=str.charAt(i); // System.out.println(c);if (c>='A' && c<='Z') {big++;} else if (c>='a' && c<='z') {small++;} else if (c>='0' && c<='9') {number++;}}System.out.println("大寫字母個數:"+big);System.out.println("小寫字母個數:"+small);System.out.println("數字個數:"+number);}//將字符串中,第一個字母轉換成大寫,其他字母轉換成小寫,并打印改變后的字符串public static void getword(String str){String head=str.substring(0,1);String body=str.substring(1);String neww=head.toUpperCase()+body.toLowerCase();System.out.println(neww);}//查詢大字符串中,出現指定小字符串的次數。如“hellojava,nihaojava,javazhenbang”中查詢出現“java”的次數。public static void getci(){String s1="hellojava,nihaojava,javazhenbang";String s2="java";int count=0;//出現次數int index=-1;//出現位置下標while((index=s1.indexOf(s2)) != -1){count++;s1=s1.substring(index+s2.length());System.out.println(s1);}System.out.println(count);}}?
轉載于:https://www.cnblogs.com/lzw123-/p/9397933.html
總結
以上是生活随笔為你收集整理的Object类和String类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LNMP Nginx 499 问题 第三
- 下一篇: 12-openldap使用AD密码