初识Java字符串String类

一、String类常用构造方法: 

1.

String s = new String("good");     //双引号,因为单引号为char

    等价于:

char a[] = {'g','o','o','d'};                   
String s = new String(a);

2. 提取字符数组a中的一部分创建一个字符串对象

   String(char a[], int offset, int length)

char a[] = {'g','o','o','d'};   
String s = new String(a,2,2);   //s为“od”

3. 通过字符串常量的引用赋值

String str1, str2;
str1 = "We are one";
str2 = "We are one";

  注意:此时str1与str2引用相同的字符串常量,因此具有相同的实体。内存示意图如下:

  

二、String类常用操作及方法

1、连接多个字符串

String s = s1 + " " + s2;

2、连接其他数据类型

     如果将字符串同其他基本数据类型进行连接,会将这些数据直接转换成字符串

int booktime = 4;
String s = "We spent " + booktime + " hours on this book";

3、获取字符串长度

   str.length();

4、字符串查找

   1)indexOf() 方法返回搜索的字符或字符串首次出现的位置

        str.indexOf(substr);         //substr为要搜索的字符串

   2)lastIndexOf() 方法返回搜索的字符或字符串最后一次出现的索引的位置

        str.lastIndexOf(substr);

   注意:如果lastIndexOf() 方法中的参数是空字符串""(没有空格),则返回的结果与调用该字符串length()方法的返回结果相同

5、获取指定索引位置的字符

     str.charAt(int index);

6、获取子字符串

     1)substring(int beginIndex) 方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串

          str.substring(int beginIndex);       //在字符串中空格占用一个索引位置

     2)  substring(int beginIndex, int endIndex) 方法返回从beginIndex索引位置开始到(endIndex - 1)位置的子串

          str.substring(int beginIndex, int endIndex);   //截至到endIndex-1处

7、去除前导空格和尾部空格

      str.trim();     //去除点到空格和尾部空格,不去除中间空格

String str = "   I love Java   ";
System.out.println(str.trim());   //结果为"I love Java"

8、字符串替换

      replace() 方法可实现将指定的字符或字符串替换成新的字符或字符串

      str.replace(char oldChar, char newChar);

String str = "address";
String newstr = str.replace("a", "A");  //结果为"Address"

   注意:如果要替换的字符oldChar在字符串中重复多次出现,replace()方法会将所有的oldChar全部替换成newChar

9、判断字符串的开始与结尾

     startsWith() 方法与 endsWith() 方法分别用于判断字符串是否以指定的内容开始或结尾。

     返回类型为boolean类型

     str.startsWith(String prefix);

     str.endsWith(String suffix);

String num1 = "22034";
String num2 = "34578";
boolean b1 = num1.startsWith("22");   //b1为true
boolean b2 = num2.endsWith("56");    //b2为false

10、判断字符串是否相等

        对字符串对象进行比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。

即使两个字符串的内容相同,两个队下个的内存地址也是不同的(如果String对象是new出来的,而不是字符串常量的引用),使用比较运算符仍然会返回false。

String tom = new String("I am a student");
String jerry = new String("I am a student");
boolean b = (tom == jerry);  //b值为false

内存示意图为:

 1)equals() 方法,如果两字符串具有相同的字符和长度,则返回true

      str.equals(String otherstr);

 2)  equalsIgnoreCase() 方法,不区分大小写,其他与equals()相同

      str.equalsIgnoreCase(String otherstr);

11、按字典顺序比较两个字符串

      compareTo() 方法按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值

      若String对象位于参数字符串之前,比较结果返回一个负数;若之后,返回一个正数;若两字符串相等,返回结果为0

      str.compareTo(String otherstr);

12、字母大小写转换

       1)toLowerCase() 方法将String转换为小写

            str.toLowerCase();

       2) toUpperCase() 方法将String转换为大写

            str.toUpperCase();

       注意:数字或非字符不受影响

13、字符串分割

       使用split() 方法可以使字符串按制定的分割字符或字符串对内容进行分割,并将分割后的结果存放在字符串数组中

       1)split(String sign) 方法可根据给定的分隔符对字符串进行拆分

             str.split(String sign);

       2)split(String sign, int limit) 方法可根据给定的分隔符对字符串进行拆分,并限定拆分次数

              str.split(String sign, int limit);

String str = "192.168.0.1";
//按照“.”进行分割,使用转义字符“\\.”

String[] firstArray = str.split("\\.");  
String[] secondArray = str.split("\\.",2);

for(String a : firstArray){
    System.out.print("[" + a + "]");
}    //输出为[192][168][0][1]

for(String a : secondArray){
    System.out.print("[" + a + "]");
}    //输出为[192][168.0.1]


格式化字符串

和 正则表达式

和 字符串生成器

后续再补……

猜你喜欢

转载自blog.csdn.net/qq_42182367/article/details/81879703