Java字符串之使用String

时间:2021-12-04 16:21:32

    在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字符串之使用Stringpackage book.oo.String;
Java字符串之使用StringJava字符串之使用String
/**
Java字符串之使用String * 使用字符串类String
Java字符串之使用String * 
@author Administrator
Java字符串之使用String *
Java字符串之使用String 
*/

Java字符串之使用String
Java字符串之使用StringJava字符串之使用String
public class UsingString {
Java字符串之使用StringJava字符串之使用String    
/** 查找子字符串 */
Java字符串之使用StringJava字符串之使用String    
public static void testFindStr(String str) {
Java字符串之使用String        
//返回子字符串在字符串中最先出现的位置,如果不存在,返回负数
Java字符串之使用String
        System.out.println("str.indexOf("is") = " + str.indexOf("is"));
Java字符串之使用String        
//可以给indexOf方法设置参数,指定查找的起始位置
Java字符串之使用String
        System.out.println("str.indexOf("is", 4) = " + str.indexOf("is"4));
Java字符串之使用String        
//返回子字符串在字符串中最后出现的位置,如果不存在,返回负数
Java字符串之使用String
        System.out.println("str.lastIndexOf("is") = " + str.lastIndexOf("is"));
Java字符串之使用String        
//可以给lastIndexOf方法设置参数,指定查找的结束位置
Java字符串之使用String
        System.out.println("str.lastIndexOf("is", 1) = " + str.lastIndexOf("is"1));
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
/** 截取字符串 */
Java字符串之使用StringJava字符串之使用String    
public static void testSubStr(String str) {
Java字符串之使用String        
//subsring方法截取字符串,可以制定截取的起始位置和终止位置
Java字符串之使用String        
//默认终止位置为字符串末尾
Java字符串之使用String
        System.out.println("str.substring(2) = " + str.substring(2));
Java字符串之使用String        System.out.println(
"str.substring(2, 9) = " + str.substring(29));
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
/** 替换字符串 */
Java字符串之使用StringJava字符串之使用String    
public static void testReplaceStr(String str) {
Java字符串之使用String        
//将字符串中的某个字符替换成另一个字符
Java字符串之使用String
        System.out.println("str.replace('i', 'I') = " + str.replace('i''I'));
Java字符串之使用String        
//将字符串中的某个子字符串替换成另一个字符串
Java字符串之使用String
        System.out.println("str.replaceAll("is", "IS") = " + str.replaceAll("is""IS"));
Java字符串之使用String        
//将字符串中的某个子字符串的第一个替换成另一个字符串
Java字符串之使用String
        System.out.println("str.replaceFirst("is", "IS") = " + str.replaceFirst("is""IS"));
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
/** 转换大小写 */
Java字符串之使用StringJava字符串之使用String    
public static void testToUpperOrLower(String str) {
Java字符串之使用String        
//将字符串全部变成大写形式
Java字符串之使用String
        System.out.println("str.toUpperCase() = " + str.toUpperCase());
Java字符串之使用String        
//将字符串全部变成小写形式
Java字符串之使用String
        System.out.println("str.toLowerCase() = " +  str.toLowerCase());
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
/** 获取字符串中某个位置上的字符 */
Java字符串之使用StringJava字符串之使用String    
public static void testCharAt(String str) {
Java字符串之使用String        
//返回字符串某个位置上的字符
Java字符串之使用String
        System.out.println("str.charAt(2) = " +  str.charAt(2));
Java字符串之使用String        
//将字符串转换成字符数组,数组长度为字符串的长度
Java字符串之使用String
        System.out.println(str.toCharArray());
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
/** 比较字符串的大小 */
Java字符串之使用StringJava字符串之使用String    
public static void testCompareStr(String str) {
Java字符串之使用String        
//compareTo方法比较来年改革字符串的大小,比较规则:
Java字符串之使用String        
//首先比较第一个字符,根据字符编码比,如果字符编码比目标字符小,则返回负数
Java字符串之使用String        
//如果相等则继续比较第二个字符,大则返回正数
Java字符串之使用String
        System.out.println("str.compareTo("I am in Chongqing") = " + str.compareTo("I am in Chongqing"));
Java字符串之使用String        
//compareToIgnoreCase在比较的时候忽略字符的大小写,认为同一字符的大小写相等
Java字符串之使用String
        System.out.println("str.compareToIngoreCase("I am in Chongqing") = " + str.compareToIgnoreCase("I am in Chongqing"));
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
/** 比较字符串是否相等 */
Java字符串之使用StringJava字符串之使用String    
public static void testEqualsStr(String str) {
Java字符串之使用String        
//比较字符串的值是否相等
Java字符串之使用String
        System.out.println("str.equals("I am in Chongqing") = " + str.equals("I am in Chongqing"));
Java字符串之使用String        
//比较字符串的值时不区分大小写
Java字符串之使用String
        System.out.println("str.equalsIgnoreCase("I am in Chongqing") = " +  str.equalsIgnoreCase("I am in Chongqing"));
Java字符串之使用String        
//判断字符串是否以某个子字符串开始
Java字符串之使用String
        System.out.println("str.startsWith("Th") = " + str.startsWith("Th"));
Java字符串之使用String        
//判断字符串是否以某个子字符串结尾
Java字符串之使用String
        System.out.println("str.endsWith("t!") = " + str.endsWith("t!"));
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
/** 
Java字符串之使用String     * String类也可以根据正则表达式操作字符串
Java字符串之使用String     * 包括字符串匹配、替换和分解
Java字符串之使用String     
*/

Java字符串之使用StringJava字符串之使用String    
public static void testRegex() {
Java字符串之使用String        String str 
= "aab      aaa  bb    ab";
Java字符串之使用String        String pattern1 
= "^[ a-zA-Z| ]*$";    //该正则表达式表示包含任意多个英文字母或者空格
Java字符串之使用String
        System.out.println("用正则表达式匹配成功?" + str.matches(pattern1));
Java字符串之使用String        System.out.println(str.replaceAll(
"/s{2,}"" "));    //将字符串中的连续空格换成一个空格
Java字符串之使用String
        System.out.println(str.replaceFirst("/s{2,}"" "));    //将字符串中的第一个连续空格换成一个空格
Java字符串之使用String        
//分解字符串,按空格分解,多个连续空格当作一个空格
Java字符串之使用String
        String[] ss = str.split("/s{1,}");
Java字符串之使用String        System.out.println(
"用正则表达式按空格分解:");
Java字符串之使用StringJava字符串之使用String        
for(int i = 0; i < ss.length; i++{
Java字符串之使用String            System.out.println(ss[i]);
Java字符串之使用String        }

Java字符串之使用String        
//限制分解后的数组大小
Java字符串之使用String
        System.out.println("用正则表达式按空格分解,指定最大分解段数为3:");
Java字符串之使用String        ss 
= str.split("/s{1,}"3);
Java字符串之使用StringJava字符串之使用String        
for(int i = 0; i < ss.length; i++{
Java字符串之使用String            System.out.println(ss[i]);
Java字符串之使用String        }

Java字符串之使用String        
Java字符串之使用String    }

Java字符串之使用String    
Java字符串之使用StringJava字符串之使用String    
public static void main(String[] args) {
Java字符串之使用String        String str 
= "This is a String Object!";
Java字符串之使用String        System.out.println(
"str的值:" +  str);
Java字符串之使用String        
Java字符串之使用String        UsingString.testFindStr(str);
Java字符串之使用String        System.out.println();
Java字符串之使用String        UsingString.testSubStr(str);
Java字符串之使用String        System.out.println();
Java字符串之使用String        UsingString.testReplaceStr(str);
Java字符串之使用String        System.out.println();
Java字符串之使用String        UsingString.testToUpperOrLower(str);
Java字符串之使用String        System.out.println();
Java字符串之使用String        UsingString.testCharAt(str);
Java字符串之使用String        System.out.println();
Java字符串之使用String        UsingString.testCompareStr(str);
Java字符串之使用String        System.out.println();
Java字符串之使用String        UsingString.testEqualsStr(str);
Java字符串之使用String        System.out.println();
Java字符串之使用String        UsingString.testRegex();
Java字符串之使用String    }

Java字符串之使用String}

 程序输出是:

Java字符串之使用Stringstr的值:This is a String Object!
Java字符串之使用Stringstr.indexOf(
"is"= 2
Java字符串之使用Stringstr.indexOf(
"is"4= 5
Java字符串之使用Stringstr.lastIndexOf(
"is"= 5
Java字符串之使用Stringstr.lastIndexOf(
"is"1= -1
Java字符串之使用String
Java字符串之使用Stringstr.substring(
2= is is a String Object!
Java字符串之使用Stringstr.substring(
29= is is a
Java字符串之使用String
Java字符串之使用Stringstr.replace(
'i''I'= ThIs Is a StrIng Object!
Java字符串之使用Stringstr.replaceAll(
"is""IS"= ThIS IS a String Object!
Java字符串之使用Stringstr.replaceFirst(
"is""IS"= ThIS is a String Object!
Java字符串之使用String
Java字符串之使用Stringstr.toUpperCase() 
= THIS IS A STRING OBJECT!
Java字符串之使用Stringstr.toLowerCase() 
= this is a string object!
Java字符串之使用String
Java字符串之使用Stringstr.charAt(
2= i
Java字符串之使用StringThis 
is a String Object!
Java字符串之使用String
Java字符串之使用Stringstr.compareTo(
"I am in Chongqing"= 11
Java字符串之使用Stringstr.compareToIngoreCase(
"I am in Chongqing"= 11
Java字符串之使用String
Java字符串之使用Stringstr.equals(
"I am in Chongqing"= false
Java字符串之使用Stringstr.equalsIgnoreCase(
"I am in Chongqing"= false
Java字符串之使用Stringstr.startsWith(
"Th"= true
Java字符串之使用Stringstr.endsWith(
"t!"= true
Java字符串之使用String
Java字符串之使用String用正则表达式匹配成功?
true
Java字符串之使用Stringaab aaa bb ab
Java字符串之使用Stringaab aaa  bb    ab
Java字符串之使用String用正则表达式按空格分解:
Java字符串之使用Stringaab
Java字符串之使用Stringaaa
Java字符串之使用Stringbb
Java字符串之使用Stringab
Java字符串之使用String用正则表达式按空格分解,指定最大分解段数为3:
Java字符串之使用Stringaab
Java字符串之使用Stringaaa
Java字符串之使用Stringbb    ab
注意:String是一个不变类,当字符串发生变化时,它会创造一个新的字符串,原字符串不变,因此,为了提高性能,在进行修改字符串的操作时,避免使用String类,可以使用StringBuffer类。