一.String对象创建基本使用

public class Text {
    public static void main(String[] args) {
        //对象放在常量池里
        String s1 ="123";
        System.out.println(s1);
        //对象放在堆区
        String s2 =new String("456");
        System.out.println(s2);
        char[] s3={'7','8','9'};
        String s4=new String(s3);
        System.out.println(s4);
    }
}

二.String类下的方法

1.字符串查找方法

1.1charAt(返回字符)

1.2index(从前往后找,返回下标)

举例:
 
    public static void main(String[] args) {
        String s="abcdef";
        int ret =s.indexOf('a',2);  //2下标后没有a所以返回-1
        System.out.println(ret);
   }

1.3  lastindex(从后往前找,返回下标)

举例:
  public static void main(String[] args) {
        String s="abcdef";
        int ret =s.lastIndexOf('a',2);  //由于从后找,下标为0
        System.out.println(ret);
   }

2.转化

2.1  value(字符串和数值之间的转化)--讲过

2.2 toUpperCase和toLowerCase大小写转化

举例:

3. toCharArray(字符串转数组)

   public static void main(String[] args) {
        String s1 ="hello";
        //字符串转数组
        char[] ret=s1.toCharArray();
        System.out.println(Arrays.toString(ret));
        //数组转字符串
        String s3 =new String(ret);
        System.out.println(s3);
    }

3.split(字符串拆分)

举例:

    public static void main(String[] args) {
        String s1="name=lishi&age=18";
        String[] s2 =s1.split("&");
        for (String a:s2){
            String[] ret=a.split("=");
            for (String b:ret){
                System.out.println(b);
            }
        }
    }

注意:

1.字符  "|"  "*"  "+"  都得加上转义字符,前面加上"\\"
2.而如果是"\",那么就得写成"\\\\"
3.如果一个字符串中有多个分隔符,可以用 "|"  作为连字符

上述代码改进:
 

    public static void main(String[] args) {
        String s1="name=lishi&age=18";
        String[] s2 =s1.split("&|=");
        for (String a:s2){
            System.out.println(a);
        }
    }

4.substring(字符串截取)

举例:

 public static void main(String[] args) {
        String s1 ="helloworld";
        String s2=s1.substring(2,4);  //不包括4下标
        System.out.println(s2);
    }

5.trim(取出字符串俩边的空白字符)

6.注意:

String类的这些方法都是创建新的对象来进行修改的,效率比较低,因此Java提供了StringBuilder、StringBuffer类(Java EE会讲),此类下的方法有String类下的许多方法,但都是在原字符进行修改,效率高,也提供了String类没有的方法

三.StringBuilder类

    public static void main(String[] args) {
        StringBuilder sb1 = new StringBuilder("hello");
        StringBuilder sb2 = sb1;
  //       追加:即尾插->字符、字符串、整形数字  //“abc”+"we"效率高很多
        sb1.append("");  //hello
        sb1.append("world");// hello world
        sb1.append(123);// hello world123
        System.out.println(sb1);// hello world123
        System.out.println(sb1 == sb2); // true
        System.out.println(sb1.charAt(0));// 获取0号位上的字符 h
        System.out.println(sb1.length());// 获取字符串的有效长度14
        sb1.setCharAt(0,'H'); // 设置任意位置的字符 Hello world123
        sb1.insert(0, "Hello world!!!");// Hello world!!!Hello world123
        System.out.println(sb1);
        System.out.println(sb1.indexOf("Hello"));// 获取Hello第一次出现的位置
        System.out.println(sb1.lastIndexOf("hello")); // 获取hello最后一次出现的位置
        sb1.deleteCharAt(0);// 删除首字符
        sb1.delete(0,5);// 删除[0,5)范围内的字符

        String str = sb1.substring(0, 5);// 截取[0,5)区间中的字符以String的方式返回
        System.out.println(str);
        sb1.reverse();// 字符串逆转
        str=sb1.toString();// 将StringBuffer以String的方式返回
        System.out.println(str);
    }

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐