String类处理字符串

String类

     ● String 类表明字符串。Java 程序中的全部字符串字面值(如 “abc” )都做为此类的实例实现。 javascript

     ● 字符串是常量,它们的值在建立以后不能更改。css

     ● String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、建立字符串副本并将全部字符所有转换为大写或小写。
java

Java API 在线文档: http://docs.oracle.com/javase/7/docs/api/web


String 类的经常使用方法


构造方法


     要建立类String的一个对象并进行初始化,须要调用类 String的构造方法。类String中提供了下面的一些构造方法:
正则表达式

  • 一、String( ) 无参数的缺省的构造方法用来建立一个空串。
String s = new String();
  • 二、String( String original):利用已经存在的字符串常量建立一个新的String对象,该对象的内容与给出的字符串常量一致。
String s = new String("hello");
  • 三、String( char value[ ] );经过给构造方法传递一个字符数组 能够建立一个非空串。
char chars[ ] = { 'a' , 'b' , 'c' };
String s = new String(chars);
  • 四、String( char [ ] , int startIndex, int numChars ):这种方法用来建立一个非空串,而且指明所建立的字符串在字符数组中的起始地址以及所包含的字符个数。
char chars[] = { 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
String s = new String ( chars , 2 , 3 );//该方法生成的串s为“cde”。(注意数组的下标从0开始)


实例:
api

String str1 = new String();
        String str2 = new String("abcd");

        char[] charArray = new char[]{'D', 'E', 'F'};
        String str3 = new String(charArray);

        char chars[] = { 'a' , 'b' , 'c' , 'd' , 'e' , 'f' };
        String s = new String ( chars , 2 , 3 );        

        System.out.println("a" + str1 + "b");
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(s);

1


字符串长度/字符串查找

int length()              //返回字符串长度
char charAt(int index)    //返回指定索引处的 char 值。
int indexOf(int ch)       //返回指定字符在此字符串中第一次出现处的索引
int lastIndexOf(int ch)   //返回指定字符在此字符串中最后一次出现处的索引。


实例:
数组

String s = "abcdedcba";
        System.out.println("字符串的长度为:" + s.length());
        System.out.println("字符串中第一个字符:" + s.charAt(0));
        System.out.println("字符c第一次出现的位置:" + s.indexOf('c'));
        System.out.println("字符c最后一次出现的位置:" + s.lastIndexOf('c'));

2


字符串修改/替换

char[] toCharArray()            //将此字符串转换为一个新的字符数组。
static String valueOf(int i)    //返回 int 参数的字符串表示形式。


大小写的转换:
oracle

String toUpperCase();   //使用默认语言环境的规则将此 String 中的全部字符都转换为大写。
String toLowerCase();   //使用默认语言环境的规则将此 String 中的全部字符都转换为小写。


实例:
svg

String str = "abcd";
        System.out.println("将字符串转为字符数组后的结果:");
        char[] charArray = str.toCharArray();
        for(int i = 0; i < charArray.length - 1; i++) {
            if(i != charArray.length - 1) {
                System.out.println(charArray[i]);
            }else {
                System.out.println(charArray[i]);
            }
        }
        System.out.println("将int值转换为String类型以后的结果:" + String.valueOf(12));
        System.out.println("将字符串转换成大写以后结果:" + str.toUpperCase());

3

//返回一个新的字符串,它是经过用 newChar 替换此字符串中出现的全部 oldChar 获得的。
String replace(char oldChar, char newChar); 

//返回字符串的副本,忽略前导空白和尾部空白。
String trim();


实例:
测试

String s = "lingdu";
        //字符串的替换操做
        System.out.println("将li替换成cn.li的结果" + s.replace("li", "cn.li"));

        //字符串去除空格操做
        String s1 = " l i n g d u ";
        System.out.println("去除字符串两端空格后的结果:" + s1.trim());
        System.out.println("去除字符串中全部空格后的结果:" + s1.replace(" ",""));

4


字符串比较

boolean startsWith(String prefix) //测试此字符串是否以指定的前缀开始。
boolean endsWith(String suffix) //测试此字符串是否以指定的后缀结束。

boolean contains(CharSequence s) //当且仅当此字符串包含指定的 char 值序列时,返回 true。

boolean isEmpty() 当且仅当 length() //为 0 时返回 true。
boolean equals(Object anObject)  //将此字符串与指定的对象比较。


实例:

String s1 = "String";
        String s2 = new String("Str");

        System.out.println("判断是否以字符串Str开头:" + s1.startsWith("Str"));
        System.out.println("判断是否以字符串ng结尾:" + s1.endsWith("ng"));
        System.out.println("判断是否包涵字符串tri: " + s1.contains("tri"));
        System.out.println("判断字符串是否为空:" + s1.isEmpty());
        System.out.println("判断两个字符串是否相等:" + s1.equals(s2)); 

        // == 和 quelas() 的区别
        String str1 = new String("abc");
        String str2 = new String("abc");
        System.out.println(str1 == str2); //结果为false,由于str1和str2是两个对象
        System.out.println(str1.equals(str2)); //结果为true,由于str1和str2字符内容相同

5


字符截取/分割

String substring(int beginIndex) //返回一个新的字符串,它是此字符串的一个子字符串。

String substring(int beginIndex,int endIndex) //返回一个新字符串,它是此字符串的一个子字符串。

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


实例:

public static void main(String[] args) {
        String str = "羽毛球-篮球-乒乓球 ";

        //下面是字符串截取操做
        System.out.println("从第5个字符截取到末尾的结果:" + str.substring(4));
        System.out.println("从第5个字符截取到第6个字符的结果:" + str.substring(4, 6));

        //下面是字符串分割操做
        System.out.print("分割后的字符串数组中的元素依次为:");
        String[] strArray = str.split("-");
        for(int i = 0; i < strArray.length; i++) {
            if( i != strArray.length - 1) {
                System.out.print(strArray[i] + ",");
            }else {
                System.out.println(strArray[i]);
            }
        }
    }

6