黑马程序员Java基础__String类及包装类

来源:互联网 发布:大数据云计算人工智能 编辑:程序博客网 时间:2024/06/09 20:52
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------



一、String类

一、定义:
Java字符串就是Unicode字符序列。每个用双引号括起来的字符串都是String类的一个实例。
String类适用于描述字符串事物。那么它就提供了多个方法对字符串进行操作。

二、字符串方法:


一)字符串的获取:

   

1、int length()   --->   length方法返回给定字符串的长度。


2、 char charAt(int index)   --->   根据位置获取某个字符串。

 

3、 int indexOf(int ch)   --->   根据字符串获取该字符在字符串中的位置。返回字符串中第一次出现的位置。


4、   int indexOf(int ch,int fromIndex)   --->   从fromIndex指定位置开始。获取在字符串中的位置。

  

5、 int lastIndexOf(int ch)   --->   反向索引一个字符出现的位置,此位置的角标仍为从左数的角标。

     

二)字符串的判断:

 

1、 boolean contains(str)   --->   判断字符串中是否包含一个子串。

      

2、 boolean isEmpty()   --->   判断字符串中是否有内容,原理就是判断字符串长度是否为0。

      

3、 boolean startWith()   --->   判断字符串是否以指定内容开头。

     

4、 boolean endWith()   --->   判断字符串是否以指定内容结尾。

    

5、 boolean equals()   --->   判断两个字符串的内容是否相同。

      


6、 boolean equalsIgnoreCase()   --->   判断两个字符串的内容是否相同,忽略大小写。

      

三)字符串的转换:

1、将字符数组转化成字符串:

构造函数:String(char[]) 及 String(char[] ch,int offset,int count)。


2 、char[] toCharArray()   --->   将字符串转化成数组。


3、字符串和字节数组间的转换,同1和2,参数为byte[]型值。

     String(byte[] b);和String(byte[] b,int offset,int count)

     byte[] getByte[]      --->   byte[] b = str.getByte();


4、static String valueOf(3)   --->   (专业写法)将基本数据类型转换成字符串。

   


四)字符串的“更改”:

1、String replace(oldchar,newchar)   --->   字符的替换。

   

2、String toUpperCase() 和 String toLowerCase()   --->   将字符串转为大写或小写。

     

3、String trim()   --->   将字符串两端的多个空格去掉。

      

4、String[] split(regex)   --->   字符串的切割。

      


5、int compareTo(String str)   --->   对两个字符进行自然顺序的比较。

   


五)substring(int a,int b)   --->   获得字符串的子串:

String类的方法substring可以从一个较大的字符串提取出一个子串。

方法的中a和b分别代表获取的字符串的起始位置(从哪个位置开始获取,包含此位置)和终止位置(不包括b)。

     

六)intern()   --->   该方法返回是始终都是StringPool中的对象。


示例1:

class StringMethodDemo   {   public static void main(String[] args)    {    method_7();   }   public static void method_7()   {    String s = "    Hello Java     ";    sop(s.toLowerCase());//将字符串转成小写。    sop(s.toUpperCase());//将字符串转成大写。    sop(s.trim());//将字符串两端的多个空格去除。    String s1 = "a1c";    String s2 = "aaa";    sop(s1.compareTo(s2));//比较   }   public static void method_6()   {    String s = "abcdef";//获取字符串中的一部分。    sop(s.substring(2));//从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常。    sop(s.substring(2,4));//包含头,不包含尾。s.substring(0,s.length());   }   public static void method_5()   {    String s = "zhagnsa,lisi,wangwu";    String[] arr  = s.split(",");//切割    for(int x = 0; x<arr.length; x++)    {     sop(arr[x]);    }   }   public static void methoe_4()   {    String s = "hello java";    //String s1 = s.replace('q','n');//如果要替换的字符不存在,返回的还是原串。    String s1 = s.replace("java","world");//替换    sop("s="+s);    sop("s1="+s1);   }   public static void method_3()   {    char[] c={'a','v','b','s'};    String s=new String(c);    sop(s);//将字符数组转换成字符串.      String s1="abcederd";    char[] c1=s1.toCharArray();    for(int x=0;x<c1.length;x++)    {     sop(c1[x]);    }//将字符串转换成字符数组   }   public static void method_2()   {    String str="ArrayDemo.java";    sop(str.startsWith("Array"));//判断字符串是否是以指定内容开头    sop(str.endsWith(".java"));//判断字符串是否是以指定内容结尾。    sop(str.contains("Demo"));//判断字符串中是否包含某一个子串。    sop(str.isEmpty());// 字符中是否有内容,原理就是判断长度是否为0.    sop(str.equalsIgnoreCase("arraydemo.java"));//判断内容是否相同,并忽略大小写。   }   public static void method_1()   {    String str="adbcdef";    sop(str.length());//获取字符串的长度    sop(str.charAt(3));//根据位置获取位置上某个字符。    sop(str.indexOf('d',3));//从fromIndex指定位置开始,获取ch在字符串中出现的位置。 }     public static void sop(Object obj)   {    System.out.println(obj);   }  } 

三、构造字符串


一)StringBuilder和StringBuffer的对比:


----StringBuilder:是线程不同步的,相对效率更高,但是不安全

----StringBuffer:  是线程同步的,相对效率较低,但安全。


二)StringBuilder特点:

第一、StringBuilder的长度是可变的,也可以通过length()的方法求当前对象的长度。

第二、可以直接操作多个数据类型。可将如int、double、char、boolean等类型的数据作为字符串相连接存入容器中。

第三、最终会通过toString方法变为字符串。


三)StringBuffer的操作方法:

1、存储

StringBuffer append() --->将指定数据作为参数添加到已有数据结尾处。

StringBuffer insert(index,数据) --->可以将数据插入到指定index位置。


2、删除
  StringBuffer delete(start,end) --->删除缓冲区中的数据,包含start,不包含end。
  StringBuffer deleteCharAt(index) --->删除指定位置的字符。 


3、获取
 

   char charAt(int index)         --->   获取指定位置index上的字符。

   int indexOf(String str)         --->   获取指定字符串的位置。

   int lastIndexOf(String str)   --->   反向获取指定字符串的位置。

   nt length()                             --->   获取字符串的长度。


4、修改
 StringBuffer replace(start,end,string) --->
将start到end(不包含end)位置上的字符串更改为指定字符串string。

 void setCharAt(int index, char ch) 
--->   替换指定位置上的字符为指定字符。


5、反转
StringBuffer reverse()

 --->   替换指定位置上的字符为指定字符。


6、将缓冲区中指定数据存储到指定字符数组中
  void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)  


示例2:

class  StringBufferDemo  {   public static void main(String[] args)    {    delete();   }     public static void method_revise()   {    StringBuffer sb  = new StringBuffer("abcde");      sb.replace(1,4,"java");//从1-4修改成java    sb.setCharAt(2,'k');//将2角标修改成K    sop(sb.toString());   public static void delete()   {    StringBuffer sb=new StringBuffer("abcdefg");    sop(sb.toString());    sb.delete(0,sb.length());//清空缓冲区.或删除从哪到哪的字符    sop(sb.toString());   }   public static void append()   {    StringBuffer sb=new StringBuffer();//建立字符缓冲区.    sb.append("abc").append(123);//添加    sop(sb.toString());//打印字符串表现形式   }   public static void sop(Object obj)   {    System.out.println(obj);   }  }  

二、包装类


一、概述:

有时候,需要将int这样的基本类型转换为对象,以便可以使用一些方法。所有的基本类型都有一个相对应的类。这些类就称之为包装类。


二、基本数据类型对应的包装类:

      基本数据类型              引用数据类型(包装类)

           byte                               Byte

           short                             Short

           int                                  Integeter

           long                              Long

           float                              Float

           double                         Double           

           boolean                       Boolean

           char                              Character


三、常见操作:

用于基本数据类型和字符串类型间的转换。


1、转换:

1)基本数据类型转换为字符串

      基本数据类型 + ""              --->   直接转换成字符串

      基本数据类型.toString(基本数据类型值)  。

2)字符串转换为基本数据类型:

      基本数据类型名  变量名 = 包装类名.pase包装类名(String)


2、转二进制:

      Integer.toBinaryString(int a);

     十进制 -----> 其他进制

1)转为二进制:toBinaryString();

2)转为八进制:toOctalString();

3)转为十六进制:toHexString();

     其他进制 -----> 十进制

    parseInt(String,radix);


---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
原创粉丝点击