在Java中,字符串是一个对象,不是字符的数组,这和其他编程语言不一样。java.lang.String定义了字符串类型。该类提供了字符串的查找、替换等操作字符串的方法。除了java.lang.String类之外,java.lang.StringBuffer也是一个常用的操作字符串的类,它具备了String类的大部分功能,常用于修改字符串,效率比String类要高一些。还有一个类java.util.StringTokenizer,只要用于分解字符串,将字符串分解成多个标记。从JDK1.4开始,Java开始支持正则表达式,java.util.regex包实现了正则表达式。

一,使用String
    用String类操作字符串有如下关键技术点
    1、String的indexOf和lastIndexOf实例方法用于查找子串。
    2、substring实例方法用于截取子串。
    3、replace,replaceFirst和replaceAll实例方法用于替换子串。
    4、toUpperCase和toLowerCase实例方法用于转换字符串的大小写。
    5、charAt实例方法获取字符串上某个位置的字符
    6、compareTo和compareToIgnoreCase方法比较字符串,后者是比较时不区分大小写
    7、equals方法判断字符串是否相等
    8、startsWith方法判断字符串是否以某前缀开始,endswith方法判断字符串是否以某后缀结束。
    9、String类能够处理正则表达式,matches方法用于正则表达式匹配字符串;split方法根据正则表达式把字符串分解成多个子串。
   
下面示例代码练习使用各种方法:

java 用字符串方法名 java字符串使用_代码练习

package 
   book.oo.String;
 
  /** */ 
  /**
 * 使用字符串类String
 * @author Administrator
 *
 */ 
  

 
  public 
    
  class 
   UsingString  
  ... 
  {
    /** *//** 查找子字符串 */
    public static void testFindStr(String str) ...{
        //返回子字符串在字符串中最先出现的位置,如果不存在,返回负数
        System.out.println("str.indexOf("is") = " + str.indexOf("is"));
        //可以给indexOf方法设置参数,指定查找的起始位置
        System.out.println("str.indexOf("is", 4) = " + str.indexOf("is", 4));
        //返回子字符串在字符串中最后出现的位置,如果不存在,返回负数
        System.out.println("str.lastIndexOf("is") = " + str.lastIndexOf("is"));
        //可以给lastIndexOf方法设置参数,指定查找的结束位置
        System.out.println("str.lastIndexOf("is", 1) = " + str.lastIndexOf("is", 1));
    }
    
    /** *//** 截取字符串 */
    public static void testSubStr(String str) ...{
        //subsring方法截取字符串,可以制定截取的起始位置和终止位置
        //默认终止位置为字符串末尾
        System.out.println("str.substring(2) = " + str.substring(2));
        System.out.println("str.substring(2, 9) = " + str.substring(2, 9));
    }
    
    /** *//** 替换字符串 */
    public static void testReplaceStr(String str) ...{
        //将字符串中的某个字符替换成另一个字符
        System.out.println("str.replace('i', 'I') = " + str.replace('i', 'I'));
        //将字符串中的某个子字符串替换成另一个字符串
        System.out.println("str.replaceAll("is", "IS") = " + str.replaceAll("is", "IS"));
        //将字符串中的某个子字符串的第一个替换成另一个字符串
        System.out.println("str.replaceFirst("is", "IS") = " + str.replaceFirst("is", "IS"));
    }
    
    /** *//** 转换大小写 */
    public static void testToUpperOrLower(String str) ...{
        //将字符串全部变成大写形式
        System.out.println("str.toUpperCase() = " + str.toUpperCase());
        //将字符串全部变成小写形式
        System.out.println("str.toLowerCase() = " +  str.toLowerCase());
    }
    
    /** *//** 获取字符串中某个位置上的字符 */
    public static void testCharAt(String str) ...{
        //返回字符串某个位置上的字符
        System.out.println("str.charAt(2) = " +  str.charAt(2));
        //将字符串转换成字符数组,数组长度为字符串的长度
        System.out.println(str.toCharArray());
    }
    
    /** *//** 比较字符串的大小 */
    public static void testCompareStr(String str) ...{
        //compareTo方法比较来年改革字符串的大小,比较规则:
        //首先比较第一个字符,根据字符编码比,如果字符编码比目标字符小,则返回负数
        //如果相等则继续比较第二个字符,大则返回正数
        System.out.println("str.compareTo("I am in Chongqing") = " + str.compareTo("I am in Chongqing"));
        //compareToIgnoreCase在比较的时候忽略字符的大小写,认为同一字符的大小写相等
        System.out.println("str.compareToIngoreCase("I am in Chongqing") = " + str.compareToIgnoreCase("I am in Chongqing"));
    }
    
    /** *//** 比较字符串是否相等 */
    public static void testEqualsStr(String str) ...{
        //比较字符串的值是否相等
        System.out.println("str.equals("I am in Chongqing") = " + str.equals("I am in Chongqing"));
        //比较字符串的值时不区分大小写
        System.out.println("str.equalsIgnoreCase("I am in Chongqing") = " +  str.equalsIgnoreCase("I am in Chongqing"));
        //判断字符串是否以某个子字符串开始
        System.out.println("str.startsWith("Th") = " + str.startsWith("Th"));
        //判断字符串是否以某个子字符串结尾
        System.out.println("str.endsWith("t!") = " + str.endsWith("t!"));
    }
    
    /** *//** 
     * String类也可以根据正则表达式操作字符串
     * 包括字符串匹配、替换和分解
     */
    public static void testRegex() ...{
        String str = "aab      aaa  bb    ab";
        String pattern1 = "^[ a-zA-Z| ]*$";    //该正则表达式表示包含任意多个英文字母或者空格
        System.out.println("用正则表达式匹配成功?" + str.matches(pattern1));
        System.out.println(str.replaceAll("/s{2,}", " "));    //将字符串中的连续空格换成一个空格
        System.out.println(str.replaceFirst("/s{2,}", " "));    //将字符串中的第一个连续空格换成一个空格
        //分解字符串,按空格分解,多个连续空格当作一个空格
        String[] ss = str.split("/s{1,}");
        System.out.println("用正则表达式按空格分解:");
        for(int i = 0; i < ss.length; i++) ...{
            System.out.println(ss[i]);
        }
        //限制分解后的数组大小
        System.out.println("用正则表达式按空格分解,指定最大分解段数为3:");
        ss = str.split("/s{1,}", 3);
        for(int i = 0; i < ss.length; i++) ...{
            System.out.println(ss[i]);
        }
        
    }
    
    public static void main(String[] args) ...{
        String str = "This is a String Object!";
        System.out.println("str的值:" +  str);
        
        UsingString.testFindStr(str);
        System.out.println();
        UsingString.testSubStr(str);
        System.out.println();
        UsingString.testReplaceStr(str);
        System.out.println();
        UsingString.testToUpperOrLower(str);
        System.out.println();
        UsingString.testCharAt(str);
        System.out.println();
        UsingString.testCompareStr(str);
        System.out.println();
        UsingString.testEqualsStr(str);
        System.out.println();
        UsingString.testRegex();
    }
}

 程序输出是:

java 用字符串方法名 java字符串使用_代码练习

 str的值:This  is  a String Object !
str.indexOf( " is " )  =   2
str.indexOf( " is " ,  4 )  =   5
str.lastIndexOf( " is " )  =   5
str.lastIndexOf( " is " ,  1 )  =   - 1

str.substring( 2 )  =   is   is  a String Object !
str.substring( 2 ,  9 )  =   is   is  a

str.replace( ' i ' ,  ' I ' )  =  ThIs Is a StrIng Object !
str.replaceAll( " is " ,  " IS " )  =  ThIS IS a String Object !
str.replaceFirst( " is " ,  " IS " )  =  ThIS  is  a String Object !

str.toUpperCase()  =  THIS IS A STRING OBJECT !
str.toLowerCase()  =   this   is  a  string   object !

str.charAt( 2 )  =  i
This  is  a String Object !

str.compareTo( " I am in Chongqing " )  =   11
str.compareToIngoreCase( " I am in Chongqing " )  =   11

str.equals( " I am in Chongqing " )  =   false
str.equalsIgnoreCase( " I am in Chongqing " )  =   false
str.startsWith( " Th " )  =   true
str.endsWith( " t! " )  =   true

用正则表达式匹配成功? true
aab aaa bb ab
aab aaa  bb    ab
用正则表达式按空格分解:
aab
aaa
bb
ab
用正则表达式按空格分解,指定最大分解段数为3:
aab
aaa
bb    ab