String 类的基本使用

String类

  • 主要用途
    String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
    字符串是常量,它们的值在创建之后不能更改。因为 String 对象是不可变的,所以可以共享。字符串可以看成一个字符数组。

  • 构造方法

    构造方法描述
    String()创建一个空字符串
    String​(String original)根据字符串创建一个副本
    String​(byte[ ] bytes)通过使用平台的默认字符集解码指定的字节数组构造新的 String
    String​(byte[ ] bytes, int offset, int length)使用平台的默认字符集来解码指定的字节子阵列,并创建字符串
    String​(byte[ ] bytes, String charsetName)使用指定的字符集来解码指定的字节子阵列,并创建字符串
    String​(byte[ ] bytes, int offset, int length, String charsetName)使用指定的字符集来解码指定的字节子数组,并创建字符串
    String​(char[ ] value)使用字符数组中的字符,创建字符串
  • 常用方法

    常用方法描述
    char charAt​(int index)返回指定索引处的 char值
    int length()返回此字符串的长度
    String[ ] split​(String regex)将字符串以 regex 为切点,切分成字符串数组。
    String substring​(int beginIndex)返回一个子字符串,以beginIndex下标开始
  • 使用方法
    这里暂时只演示最简单的创建字符串、charAt(int index);方法返回指定索引处的 char值、lenght();方法返回字符串长度,以及字符串的拼接。

    1. 创建字符串
      直接创建:
      String str1 = “Hello”;
      用构造方法创建:
      String str = new String("Hello“);
      注意:
      String 创建的字符串存储在常量池(公共池)中,而 new 创建的字符串对象储存在堆内存中。

      String s1 = "Runoob";              // String 直接创建
      String s2 = "Runoob";              // String 直接创建
      String s3 = s1;                    // 相同引用
      String s4 = new String("Runoob");   // String 对象创建
      String s5 = new String("Runoob");   // String 对象创建
      

      在这里插入图片描述

    2. charAt(int index) 与 lenght() 方法

      public class TestString {
          public static void main(String[] args)  {
              //创建一个字符串
              String str = "Hello";
              //遍历字符串
              for (int i = 0; i < str.length(); i++) {
                  char c = str.charAt(i);
                  System.out.println(c);
              }
          }
      }
      ---*---
      输出结果:
      H
      e
      l
      l
      o
      
    3. 字符串拼接

      public class TestString {
          public static void main(String[] args)  {
              String str1 = "He";
              String str2 = str1+"llo";//字符串通过 + 号拼接
              System.out.println(str1);
              System.out.println(str2);
          }
      }
      ---*---
      输出结果:
      He
      Hello
      

      注意:
      字符串在使用 ‘+’ 号进行拼接的时候会产生新的对象。上面代码中 str1的 He 、 str2的 Hello 以及 llo 均是字符串对象。在此引出StringBuilder和StringBuffer类。

String 帮助文档


StringBuffer 与 StringBuilder类

  • 主要用途
    String、StringBuffer和StringBuilder都是字符串类,String类是不可变类,任何对String的改变都 会引发新的String对象的生成;StringBuffer和StringBuilder则是可变类,任何对它所指代的字符串的改变都不会产生新的对象。字符串拼接时不会产生新的对象。
  • StringBuffer 与 StringBuilder的区别
    它们的原理和操作基本相同,区别在于StringBufferd支持并发操作,线性安全的,适合多线程中使用。StringBuilder不支持并发操作,线性不安全的,不适合多线程中使用。但StringBuilder在单线程中的性能比StringBuffer高。
  • 使用方法
    由于StringBuilder和StringBuffer的操作基本相同,这里只演示StringBuilder的 append() 方法追加数据(数据可以是基本类型和字符串)、insert() 方法指定索引处插入数据(数据可以是基本类型和字符串)、reverse();方法翻转字符串以及String和StringBuilder的转换。
    1. 创建StringBuilder对象的基本语法
      StringBuilder sb = new StringBuilder();
      StringBuilder sb = new StringBuilder(String str);

    2. 使用 append() 方法

      public class TestStringBuilder {
          public static void main(String[] args)  {
              StringBuffer sb = new StringBuffer("开始");
              sb.append(1);
              sb.append(2.0);
              sb.append("结束");
              System.out.println(sb);
          }
      }
      ---*---
      输出结果:
      开始12.0结束
      
    3. 使用 insert() 方法

      public class TestStringBuilder {
          public static void main(String[] args)  {
              StringBuffer sb = new StringBuffer("开始");
              sb.insert(1,"插入");
              System.out.println(sb);
          }
      }
      ---*---
      输出结果:
      开插入始
      
    4. 使用 reverse() 方法

      public class TestStringBuilder {
          public static void main(String[] args)  {
              StringBuffer sb = new StringBuffer("开始");
              sb.reverse();
              System.out.println(sb);
          }
      }
      ---*---
      输出结果:
      始开
      
    5. String与StringBuilder转换

      public class TestStringBuilder {
          public static void main(String[] args)  {
              //String转StringBuilder
              String str1 = "开始";
              StringBuffer sb1 = new StringBuffer(str1);
              System.out.println(sb1);
              
              //StringBuilder转String
              StringBuilder sb2 = new StringBuilder("结束");
              String str2 = sb2.toString();
              System.out.println(str2);
          }
      }
      ---*---
      输出结果:
      开始
      结束
      

StringBuilder 帮助文档


扩展

  • public String[] split​(String regex) 分隔字符串,返回String数组
    public class Demo {
        public static void main(String[] args) {
    
            String s = "11,22,32,55,34,63,2";
            String[] ss = s.split(",");//以 , 号为分隔点
    
            System.out.println(Arrays.toString(ss));
    
        }
    }
    ---*---
    输出结果:
    [11, 22, 32, 55, 34, 63, 2]
    
    该方法可将字符串以指定符号进行分隔,成多个字符串,并将其以字符数组形式返回
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值