Java常用类——String类-Java板块造梦空间论坛-技术交流-造梦空间论坛

Java常用类——String类

一、String 的三种构造方法

  1. String s1="hello word";
    System.out.println(s1);

    这种方式是字符串字面值的形式创建String对象,也是最常用的方式之一。在Java中,字符串字面值会在编译时自动创建为String对象。在内存中,会创建一个指向字符串常量池中的字符串的引用。

  2. String s2 = new String("hello word");
    System.out.println(s2);

    使用new关键字显式调用String类的构造方法创建对象。这种方式会在堆内存中创建一个新的字符串对象,而不是直接引用字符串常量池中的字符串。即使字符串常量池中已经存在相同内容的字符串,使用这种方式也会创建一个新的对象。

  3. char[] c={'a','b','c'};
    String s3 = new String(c);
    System.out.println(s3);

    使用字符数组作为参数调用String类的构造方法。这种方式会根据字符数组中的字符创建一个新的字符串对象。新对象的内容是字符数组中的字符序列。

二、字符串查找和截取

String str1 = new String("abcdefcba");
  1. 查找指定字符或子字符串第一次出现的位置,从0开始算。
    int a1 = str1.indexOf("a");//1
    int a2 = str1.indexOf("f");//5
  2. 查找指定字符或子字符串最后一次出现的位置。
    int a3 = str1.lastIndexOf("f");//5
    int a4 = str1.lastIndexOf("c");//6
  3. 截取子字符串,指定起始和结束位置(不包括结束位置)
    String a5 = str1.substring(2, 4);//cd

三、获取字符串的长度

int length = str1.length();//9

四、字符提取

获取指定索引位置的字符。

char b1 = str1.charAt(8);//a

五、字符串判断

  1. 判断字符串是否以指定前缀开头。
    boolean def1 = str1.startsWith("abc");//true
    boolean def2 = str1.startsWith("bcd");//false
  2. 判断字符串是否以指定后缀结尾。
    boolean def1 = str1.endsWith("cba");//true
    boolean def2 = str1.endsWith("bcd");//false
  3. 判断字符串是否为空,为空则true。
    boolean def3 = str1.isEmpty();//false
  4. 判断字符串是否包含指定子字符串。
    boolean contains1 = str1.contains("abc");//true
    boolean contains2 = str1.contains("zmkj");//false

六、字符串比较

String str2 = "hello";
  1. 判断两个字符串是否相等。
    boolean isEqual = str2.equals(str2);
  2. 判断两个字符串是否相等(忽略大小写)。
    boolean isEqualIgnoreCase = "A".equalsIgnoreCase("a");//true
  3. 比较两个字符串的大小关系 ,首先比较最左边的,如果有重复就下一个,哪个大就哪个。
    int compareResult = "A".compareTo("B");//-1
    //A的码值为65,B的码值为66,65-66=-1

注:比较大小是根据ASCLL码值比较大小,可以查看Ascll完整码表(256个)_ascll码表_加油当当的博客-CSDN博客查看ASCLL码值,也可以使用下面代码查询相关的ASCLL码值。

int x=(char)'A';
System.out.println(x);

七、字符串替换

将指定字符或子字符串替换为新的字符或字符串。

String replacedString = str1.replace("l", "L");

八、字符串分割

使用指定的分隔符将字符串分割成多个部分,返回字符串数组。

String[] parts = str1.split(" ");

九、StringBuilder

StringBuilder类是Java中用于动态修改字符串的可变类。相比于String类,StringBuilder类的主要优势在于它提供了可修改和操作字符串的方法,而不会频繁创建新的字符串对象,从而提高了性能。

StringBuilder类是非线程安全的,如果在多线程环境下使用,建议使用线程安全的StringBuffer类。

创建StringBuilder对象:

  1. 创建一个空的StringBuilder对象。
    StringBuilder sb = new StringBuilder();
  2. 创建一个包含初始内容的StringBuilder对象。
    StringBuilder sb1 = new StringBuilder("Hello");

追加字符串:

在StringBuilder对象末尾追加字符串

sb.append(" World");

插入字符串:

在指定位置插入字符串

sb.insert(5, " Java");

删除字符串:

删除指定范围内的字符串

sb.delete(5, 10);

替换字符串:

用指定字符串替换指定范围内的字符串

sb.replace(0, 5, "Hi");

反转字符串:

反转StringBuilder对象中的字符序列

sb.reverse();

获取字符串长度:

获取StringBuilder对象中的字符序列长度

int length = sb.length();

转换为字符串:

将StringBuilder对象转换为不可变的String对象

String str = sb.toString();

链式操作:

StringBuilder的方法可以通过链式调用,实现多个操作的连续执行,例如:

sb.append(" Hello").insert(5, "World").delete(0, 5);
请登录后发表评论

    • 小波的头像-造梦空间论坛造梦超级会员小波徽章-人气大使-造梦空间论坛等级-LV5-造梦空间论坛作者超级版主0
© 造梦空间论坛