IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Java】String类的理解和创建对象(String与StringBuffer的转换与方法) -> 正文阅读

[Java知识库]【Java】String类的理解和创建对象(String与StringBuffer的转换与方法)

1.String类的理解

1.String对象用于保存字符串,也就是一组字符序列。
2.字符串常量使用双引号括起的字符序列。
3
字符串的字符使用Unicode字符编码,一个字符占两个字节(不区分字母和汉字)
4.String类常用的构造方法
String s1=new String();
String s2=new String(String original);
String s1=new String(char []a);
String s1=new String(char []a,int startIdex,int count);
//5.String类实现了接口Serializable(String可以串行化:可以在网络传输)
//和接口Compara(String对象可以比较大小).
//6.String是final类,不能被其它类继承
//7.String有属性private final char value[];用于存放字符串内容.
8.value是一个final类型,不可以修改,即value不能指向新的地址,但是单个字符是可以变化的

package com.demo.string;

/**
 * @version 1.0
 * @auther Demo龙
 */
public class String01 {
    public static void main(String[] args) {
//> 1.String对象用于保存字符串,也就是一组字符序列。
//> 2.字符串常量使用双引号括起的字符序列。
//> 3字符串的字符使用Unicode字符编码,一个字符占两个字节(不区分字母和汉字)
//> 4.String类常用的构造方法:5
//  `String s1=new String();`
//> `String s2=new String(String original);`
//> `String s1=new String(char []a);`
//> `String s1=new String(char []a,int startIdex,int count);`
        //5.String类实现了接口Serializable(String可以串行化:可以在网络传输)
                //和接口Compara(String对象可以比较大小.
        //6.String是final类,不能被其它类继承
        //7.String有属性private final char value[];用于存放字符串内容.
        String name="Demo龙";
        name="小黑";
        final char value[]={'d','e','m','o'};
        //8.value是一个final类型,不可以修改,即value不能指向新的地址,但是单个字符是可以变化的
        value[3]='l';
        char ch[]={'a','b','c'};
        //value=ch;ERROR;
        char value02[]={'d','e','m','o'};
        value[3]='l';
        char ch02[]={'a','b','c'};
        value02=ch02;
    }
}

2.创建String对象的两种方式

1.常量式创建

在常量池中拿对象

 		String b="demo龙";
        String c="kkkkk";

2.对象式创建

直接在堆内存空间创建一个新的对象。

       String s1 = new String("demo龙");
        String s1 = new String("tttttt");
        

3.String字符串的拼接

		String s1 = new String("demo龙");
        String s2 = new String("tttttt");
        String str1 = "str";
        String str2 = "ing";

        String str3 = "str" + "ing";//常量池中的对象
        String str4 = s1 + s2; //在堆上创建的新的对象	  
        String str5 = "string";//常量池中的对象

        System.out.println(str3 == str4);//false
        System.out.println(str3 == str5);//true
        System.out.println(str4 == str5);//false

运行结果

在这里插入图片描述

3.String和StringBuffer的相互转换

1.String转化StringBuffer

   1.方法一:构造法
    StringBuffer sb03=new StringBuffer(s1);
    StringBuffer sb04=new StringBuffer(s2);
    StringBuffer sb06=new StringBuffer("demo猫");
    
    2.方法2:append
    StringBuffer sb05=new StringBuffer();
    sb05.append(b);
    StringBuffer sb07=new StringBuffer();
    sb07.append("hhhh");
package com.demo.Wrapper;

/**
 * @version 1.0
 * @auther Demo龙
 */
public class test01 {
    public static void main(String[] args) {
        Integer i = Integer.valueOf(5);
        String a;
        String b="demo虎";
        String c="kkkkk";
        String s1 = new String("demo龙");
        String s2 = new String("tttttt");
        StringBuffer sb1=new StringBuffer("demo熊");
        StringBuffer sb2=new StringBuffer("凯尔特人");

        //String-->Stringbuffer
        //1.方法一:构造法
        StringBuffer sb03=new StringBuffer(s1);
        StringBuffer sb04=new StringBuffer(s2);
        StringBuffer sb06=new StringBuffer("demo猫");
        //2.方法2:append
        StringBuffer sb05=new StringBuffer();
        sb05.append(b);
        StringBuffer sb07=new StringBuffer();
        sb07.append("hhhh");
        System.out.println("sb03="+sb03);
        System.out.println("sb04="+sb04);
        System.out.println("sb05="+sb05);
        System.out.println("sb06="+sb06);
        System.out.println("sb07="+sb07);
    }
}

运行结果
在这里插入图片描述

Stringbuffer转化String

    1.方法一:构造法
    String s3=new String(sb1);
    String s4=new String(sb2);
    2.方法二:toString
    String s5=sb06.toString();
    String s6=sb07.toString();
package com.demo.Wrapper;

/**
 * @version 1.0
 * @auther Demo龙
 */
public class test01 {
    public static void main(String[] args) {
        Integer i = Integer.valueOf(5);
        String a;
        String b="demo虎";
        String c="kkkkk";
        String s1 = new String("demo龙");
        String s2 = new String("tttttt");
        StringBuffer sb1=new StringBuffer("demo熊");
        StringBuffer sb2=new StringBuffer("凯尔特人");

        //String-->StringBuffer
        //1.方法一:构造法
        StringBuffer sb03=new StringBuffer(s1);
        StringBuffer sb04=new StringBuffer(s2);
        StringBuffer sb06=new StringBuffer("demo猫");
        //2.方法2:append
        StringBuffer sb05=new StringBuffer();
        sb05.append(b);
        StringBuffer sb07=new StringBuffer();
        sb07.append("hhhh");
        //StringBuffer-->String
        //1.方法一:构造法
        String s3=new String(sb1);
        String s4=new String(sb2);
        //2.方法二:toString
        String s5=sb06.toString();
        String s6=sb07.toString();
        System.out.println("s3="+s3);
        System.out.println("s4="+s4);
        System.out.println("s5="+s5);
        System.out.println("s6="+s6);
    }
}

测试结果
在这里插入图片描述

4.StringBuffer方法介绍

//1.StringBuffer是线程安全(耗费资源)的可变序列
//2.StringBuilder是线程不安全(不耗费资源)的可变序列

1.打印容量(理论值)capacity()

2.打印长度(实际值) length()

3.添加append()

4.打印内容toString()

5.设置长度setLength()

6.插入insert()

7.替换索引位置的字符setCharAt()

8.删除delete()

9.替换replace()

10.反转reverse()

package com.demo.Wrapper;

/**
 * @version 1.0
 * @auther Demo龙
 */
public class test01 {
    public static void main(String[] args) {
        //StringBuffer是线程安全(耗费资源)的可变序列
        //StringBuilder是线程不安全(不耗费资源)的可变序列
        // 构造方法初始化StringBuffer
        StringBuffer sb = new StringBuffer();
        // 打印当前的容量(理论值)
        System.out.println(sb.capacity());// 16//初始值为16
        // 打印长度(实际值)
        System.out.println(sb.length());// 0

        // StringBufferr 的长度是可以变的
        // 对StringBufferr操作的时候 改变的是其本身
        StringBuffer sb1 = new StringBuffer();

        sb1.append("wukong").append("z").append("n");
        sb1.append("z");
        sb1.append("n123456789");
        // 打印当前的容量(理论值)
        System.out.println(sb1.capacity());//容量=初始值为16+现有数量
        System.out.println(sb1);
        // 打印内容
        System.out.println(sb1.toString());

        StringBuffer sb3 = new StringBuffer();
         //设置长度(设置后实际长度变为设置的值,理论容量不变)
         sb3.setLength(10);
         // 打印长度(实际值)
         System.out.println(sb3.length());// 10
         System.out.println(sb3.capacity());//打印容量=0
         
        // 按照下标去(偏移量)插入
        sb3.insert(0, "wukong");
        System.out.println(sb3.toString());
        
        // 把索引位置的字符替换掉
        sb3.setCharAt(5,'p');
        System.out.println(sb3.toString());
        //索引位置插入
        sb3.insert(6, 5);
        System.out.println(sb3.toString());

        StringBuffer sb4 = new StringBuffer();
        sb4.append("0123456789");
        // 删(去头留尾)
        sb4.delete(1,5);
        System.out.println(sb4);
        // 根据索引删除 索引位置的字符
        sb4.deleteCharAt(2);
        System.out.println(sb4);

        //替换replace
        StringBuffer sb5 = new StringBuffer();
        sb5.append("wukong");
        sb5.replace(0, 4,"demo");//带头不带尾
        System.out.println(sb5);

        //反转reverse()
        String string = "wukong";
        // 字符串--->字符串缓冲区
        StringBuffer s6 = new StringBuffer(string);
        s6.reverse();
        // 反转后转回字符串
        string = s6.toString();
        System.out.println(string);
        
    }
}

测试结果
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-06 17:11:36  更:2022-06-06 17:13:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:02:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码