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 }

 

posted @ 2016-09-06 09:10  叶缓  阅读(1186)  评论(0编辑  收藏  举报