String类

  • 字符串是常量,创建之后不可改变
  • 字符串字面值存储在字符串池中,可以共享
String name = "hello"; //"hello"常量存在字符串池中
name = "zhangsan"; //给字符串赋值时,并没有修改数据,而是重新开辟了一个空间,此时"hello"为垃圾
String name2 = "zhangsan"; //"zhangsan"已存在,即直接共享给name2
System.out.println(name == name2); //true

//另外一种字符串创建方式
String str1 = new String("java");
String str2 = new String("java");
System.out.println(str1 == str2); //false
  • length()方法

    • public int length()
    • 返回字符串长度
    String content = "你好,java!";
    System.out.println(content.length()); //8
    
  • charAt()方法

    • public char charAt(int index)
    • 根据下标获取字符
    String content = "你好,java!";
    System.out.println(content.charAt(content.length()-1)); //!
    
  • contains()方法

    • public boolean cotains(String str)
    • 判断当前字符串中是否包含str
    String content = "你好,java!";
    System.out.println(content.contains("java")); //true
    
  • toCharArray()方法

    • public char[] toCharArray()
    • 将字符串转换成数组
    String content = "你好,java!";
    System.out.println(Arrays.toString(content.toCharArray())); //[你, 好, ,, j, a, v, a, !]
    
  • indexOf()方法

    • public int indexOf(String str)
    • 查找str首次出现的下标,存在则返回该下标,否则返回-1
    String content = "a你好,java!";
    System.out.println(content.indexOf("a")); //0
    System.out.println(content.indexOf("a",2)); //5,从下标为2开始找
    
  • lastIndexOf()方法

    • public int lastIndexOf(String str)
    • 查找字符串在当前字符串最后一次出现的下标索引
    String content = "a你好,java!";
    System.out.println(content.lastIndexOf("a")); //7
    
  • trim()方法

    • public String trim()
    • 去掉字符串前后的空格
    String content = "   hello world   ";
    System.out.println(content.trim()); //hello world
    
  • toUpperCase()方法

    • public String toUpperCase()
    • 将小写转成大写
    String content = "hello world";
    System.out.println(content.toUpperCase()); //HELLO WORLD
    
  • toLowerCase()方法

    • public String toLowerCase()
    • 将大写转成小写
    String content = "HELLO WORLD";
    System.out.println(content.toLowerCase()); //hello world
    
  • endWith()方法

    • public boolean endWith(String str)
    • 判断字符串是否以str结尾
    String content = "你好,java!";
    System.out.println(content.endWith("a")); //false
    
  • startWith()方法

    • public boolean startWith(String str)
    • 判断字符串是否以str开头
    String content = "你好,java!";
    System.out.println(content.startWith("你好")); //true
    
  • replace()方法

    • public String replace(char oldChar,char newChar)
    • 将旧字符串替换成新字符串
    String content = "你好,java!";
    System.out.println(content.replace("你好","hello")); //hello,java
    
  • split()方法

    • public String[] split(String str)
    • 根据str做拆分
    String content = "hello    world,hello java";
    String[] arr = content.split("[ ,]+"); //用空格和逗号进行拆分,+号表示空格和逗号可以多现多个
    for(String x : arr){
        System.out.println(x);
    }
    /*运行结果:
    hello
    world
    hello
    java
    */
    
  • equalsIgnoreCase()方法

    • 忽略大小写进行比较
    String s1 = "java";
    String s2 = "JAVA";
    System.out.println(s1.equalsIgnoreCase(s2)); //true
    
  • compare()方法

    • 比较大小(实际上比的是两个字符串在数据字典里面的位置)
    String s1 = "abc"; //a --> 97
    String s2 = "xyz"; //x --> 120
    System.out.println(s1.compare(s2)); //97-120=-23
    
    String s3 = "abc";
    String s4 = "abcxyz";
    System.out.println(s1.compare(s2)); //-3,前面字符相同比字符串长度
    

例:已知一个字符串String str = “this is a text”;

​ 1.将str中的单词单独获取出来

​ 2.将str中的text替换成practice

​ 3.在text前面插入一个easy

​ 4.将每个单词的首字符改为大写

String str = "this is a text";

//1.将str中的单词单独获取出来
String[] arr = str.split(" ");
for(String x : arr){
  System.out.println(x);
}

//2.将str中的text替换成practice
System.out.println(str.replace("text","practice"));

//3.在text前面插入一个easy
System.out.println(str.replace("text","easy text"));

//4.将每个单词的首字符改为大写
for(int i = 0; i < arr.length; i++){
  char first = arr[i].charAt(0);
  //把第一字符转换成大写
  char upperfirst = Character.toUpperCase(first);
  //拼接
  String newStr = upperfirst + arr[i].substring(1); //substring截取字符串
  System.out.println(newStr);
}
  • 可变长字符串

    • StringBuffer:可变长字符串,jdk1.0提供,运行效率慢,线程安全,比String效率高,比String节省空间

    • StringBuilder:可变长字符串,jdk5.0提供,运行效率快,线程不安全,比String效率高,比String节省空间

    //StringBuffer和StringBuilder用法一样
    StringBuffer sb = new StringBuffer();
    //StringBuilder sb = new StringBuilder();
    
    //1.append();追加
    sb.append("hello,java");
    sb.append("hello,world");
    System.out.println(sb.toString()); //hello,javahello,world
    
    //2.insert();添加
    sb.insert(0,"The First");
    System.out.println(sb.toString()); //The Firsthello,javahello,world
    
    //3.replace();替换
    sb.replace(0,3,"I am"); //替换[0,3)的字符
    System.out.println(sb.toString()); //I am Firsthello,javahello,world
    
    //4.delete();删除
    sb.delete(0,5); //替换[0,5)的字符
    System.out.println(sb.toString()); //Firsthello,javahello,world
    
    //清空
    sb.delete(0,sb.length());
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Remote_Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值