黑马程序员-JAVA基础-String 类(上)

  

1.概述

  String 类适用于描述字符串事务。提供了多种对字符串进行操作的方法。

  > 字符串的最大的特点:一旦被初始化就不能被改变。

2.常见的操作方法:

  2.1 获取: 

 1 public class StringText1 {
 2     public static void main(String srgs[])
 3     { 
 4 //        str 是一个类类型变量,"abc"是一个对象。
 5         String str = "hello java!" ; 
 6 //         str 和 str1 的区别在于:str 内存中有一个对象,而str1 内存中有两个对象。
 7         String str1 = new String("hello java!") ;
 8          
 9         sop(str.length()) ;
10         for(int i = 0 ; i < str.length() ; i ++ )
11             sop(str.charAt(i))  ; 
12         sop(str.indexOf('a')) ;
13         sop(str.indexOf('a',7)) ;
14 
15         sop(str.indexOf("java")) ;
16         sop(str.lastIndexOf('a')) ; 
17     }
18 //    打印函数:
19     public static void sop(Object obj) 
20     {
21         System.out.println(obj); 
22     }
23 }

 

    1、字符串中包含的字符数,即字符串的长度; int length() ;

    注意:String 类的 length()  是一个方法; 而 char 类型数组调用的length , 是属性。

    2、 根据位置获取位置上某个字符。 char charAt(int index) ; index 是下标。

    3 、根据字符获取该字符在字符串中的位置。

      int indexOf(int ch) ; 返回的是 ch 在字符串中第一次出现的位置。其中 ch 是字符的ASCII 码。 

      int indexOf(int ch , int fromIndex) ; 从fromIndex 指定位置开始,在字符串中第一次出现的位置.

      int indexOf(String st) ; 返回的是 st 在字符串中第一次出现的位置。

      int indexOf(String st , int fromIndex) ; 从fromIndex 指定位置开始,在字符串中第一次出现的位置.

      int lastIndexOf(int ch) ; 返回指定字符在此字符串中最后一次出现处的索引。 

  2.2 判断:

 1 public class String2 {
 2     public static void main(String args[])
 3     {
 4         String str1 = "hello java!" ; 
 5         String str2 = new String("hello java!") ;  
 6         
 7         System.out.println(str1.equals(str2));  
 8         System.out.println(str1 == str2);
 9     } 
10 }

    上面代码第7行和第8行打印结果是不一样的。用equals 方法判断的结果是true , 因为 String 类 重写了Object类的equals 方法,是equals 方法有独特的判断方法。

    判断常用的方法有:

    1、判断字符串中是否包含某一个字串。

      boolean contains(CharSequence cs) ; 

    2、字符串中是否为空:

      boolean isEmpty() ; 其原理就是判断字符长度是否为0。

    3、判断字符串是否以指定类容开头:

      boolean startsWith(String str) ; 

    4、判断字符串是否以指定类容结尾:

      boolean endsWith(String cs) ;

    5、判断字符串内容是否相等:

      boolean equals(Obeject obj) ;    

    6、 判断内容是否相同,并忽略大小写。

      boolean equalsIgnoreCase(String str)

  2.3 转换

 1 public class String3 {
 2     public static void main(String args[])
 3     {
 4         char[] ch = {'h','e' ,'l' ,'l' ,'o' ,' ' , 'j' , 'a' , 'v' ,'a'} ;
 5 //        构造函数转换:
 6 //        将字符数组转换成字符串:
 7         String str1 = new String (ch) ; 
 8         System.out.println(str1);
 9 //        从ch[] 下标 6开始,后的4个字符 ,转换成字符串。
10         String str2 = new String (ch,6,4) ;
11         System.out.println(str2);
12         
13 //        静态方法:
14 //        将字符数组转换成字符串:
15         String str3 = String.copyValueOf(ch) ; 
16         System.out.println(str3); 
17 //        从ch[] 下标 6开始,后的4个字符 ,转换成字符串。
18         String str4 = String.copyValueOf(ch,0,5) ;
19         System.out.println(str4);
20         
21         String str = "hello java" ; 
22 //        将字符串转换成字符数组;
23         char[] ch1 = str.toCharArray() ;
24         for(int i = 0 ; i < ch1.length ; i ++)
25             System.out.print("'"+ch1[i] +"'");
26         System.out.println();   
27     }
28 }

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

      构造方法:String(char[] ch)

           String(char[] ch , int offset , int count ) ; 将字符数组中的一部分转成字符串。

           其中:offset 参数是子数组第一个字符的索引;count 参数指定子数组的长度。如果从offset 后面的字符数小于count 则会异常。

           注意:该子数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

    2、将字符串转换成字符数组。

      char[] toCharArray() ; 

    3、将字节数转成字符串。

      构造方法:String(byte[] by) ;

           String(byte[] by , int offset , int count) ;

    4、将字符串转成字节数组。

      byte[] getByte() ;

    5、将基本数据类型转换成字符串。

      static String valueOf(基本数据类型) .........

  2.4 替换和切割

    String replace(char oldChar , char newChar) ; 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

    String[] split(String regex) ; 根据给定正则表达式的匹配拆分此字符串。

public class String4 {
    public static void main(String args[])
    {
        String str = "hello,java,String" ; 
        System.out.println(str); 
//        替换字符
        String str1 = str.replace(',', ' ') ;
        System.out.println(str1);
//        切割
        String[] str2 = str.split(",") ; 
        for(int i = 0 ; i < str2.length  ; i++ ) 
            System.out.println(str2[i]); 
    }
}

  2.5.子串、转换,去除空格和比较。

    1、子串:获取字符串中的一部分。

      String substring(int begin) ; 从指定位置开始到结尾。如果角标不存在,或出现字符串角标异常。

      String substring(int begin , int end) ;  包含开头,不包含尾。

    2、将字符串大小写转换:

      String toUpperCase() ; 将字符串转成大写。

      String toLowerCase() ; 将字符串转成小写。

    3、将字符串两端的多个空格去除: String trim() ; 

    4、对两个字符串进行自然顺序的比较。 int compareTo(String str) ; 当另一个字符串大于该字符串时,返回负数;相等,则返回0;否则返回正数。

 1 public class String5 {
 2     public static void main(String args[])
 3     {
 4         String str = "hello java " ;
 5 //        获取字符串中的一部分:
 6         System.out.println(str.substring(0, 6));
 7         System.out.println(str.toUpperCase());
 8         String str1 = "             HELLO WORLD      " ;
 9         System.out.println(str1.toLowerCase());
10 //        除去字符串两端的多个空格:
11         System.out.println(str1.trim()); 
12         String str2 = "hello world " ; 
13 //        对比两个字符串进行自然顺序的比较
14         System.out.println(str.compareTo(str2));
15         System.out.println('j'- 'w');
16     }
17 }

    在第14行和第15行打印的结果是一样的。

    

posted @ 2013-03-23 00:10  贺佐安  阅读(410)  评论(0编辑  收藏  举报