String类的用法
练习如何创建一个类。
1 package create; 2 3 public class Newstring { 4 String aa; 5 public Newstring() { 6 // TODO Auto-generated constructor stub 7 } 8 public Newstring(char a[]){ 9 aa=new String(a); 10 } 11 public Newstring(char a[],int offset,int length){ 12 aa=new String(a,offset,length); 13 } 14 public Newstring(String a){ 15 // aa=new String(a);//可不可以让两个字符串直接相等呢?可以 16 aa=a; 17 } 18 public void printString(){ 19 System.out.println("字符串是"+aa); 20 } 21 }
然后,关于String类的一大堆用法就出来了。
1 package create; 2 3 public class Usestring { 4 public Usestring() { 5 // TODO Auto-generated constructor stub 6 char c[]={'t','o','m','c','a','t'}; 7 Newstring a=new Newstring(c,0,4); 8 a.printString(); 9 String s="bury me in satin"; 10 Newstring b=new Newstring(s);//.toCharArray(),0,4); 11 b.printString(); 12 } 13 public void show(String a,String b,int begin,int end){ 14 int length1=a.length(); 15 int where1=a.indexOf(b); 16 int where2=a.lastIndexOf(b); 17 char c1=a.charAt(begin); 18 19 String str1=a.trim();//忽略前导空格和尾部空格 20 String str2=a.toUpperCase(); 21 String str3=a.replaceAll("abc", "123"); 22 String str4=a.substring(begin, end); 23 boolean be=a.startsWith(" "); 24 boolean en=a.endsWith("iop"); 25 boolean issame=a.equalsIgnoreCase(b); 26 int cp="abc".compareToIgnoreCase(b); 27 String[] str5=a.split("bc"); 28 29 System.out.println("字符串长度"+length1+"\n"+ 30 "找到字符串位置(匹配)"+where1+" "+where2+"\n"+ 31 "在"+(begin+1)+"处"+c1+"\n"+ 32 str1+" \n"+str2+" \n"+str3+" \n"+str4+"\n"+ 33 be+"\n"+en+"\n"+issame+"\n"+cp+"\n"); 34 for(int i=0;i<str5.length;i++){ 35 System.out.println(" "+str5[i]); 36 } 37 } 38 }
这个里面还有个判断String对象是否相等的用法,一般,判断String对象都是用equals()方法,而不用"=="比较运算符。
原因是什么呢?
假设有两个基本数据类型,我们都知道这是可以用equals判断的,可是String是对象啊,是不一样滴。
基本数据类型地址里面放的就是数据,比比就知道是什么了,而,对象的内存地址里面放的是引用,私以为用c的思想来说就是指针,指到对象放的地方(可以这么腹诽,程度太低,按着这个理解可以,真实情况不知道哦)。
那么比较String类的对象就只能用String类重写Object类的equals方法了,他会深入到本质的判断对象的内容是否一样的呢。
不扯太多,大牛的博客写得超级好,自己百度吧,这个挺重要的哦。
主类
1 package mainfunction; 2 3 import create.*; 4 //import create.Newstring; 5 public class Main { 6 7 /** 8 * @param args 9 */ 10 public static void main(String[] args) { 11 // TODO Auto-generated method stub 12 Usestring us=new Usestring(); 13 us.show(" qweabcrty abcuiop", "abc", 0, 9); 14 } 15 16 }
贵有恒何必三更眠五更起,最无益只怕一日曝十日寒。