Java基础StringAndStringBuffer笔记

package com.zxl.StringBuffer;

import java.util.Scanner;

/**
 * @author 搞笑
 * @version 1.0
 */
@SuppressWarnings("all")
public class StringAndStringBuffer {
    public static void main(String[] args) {
        //StringBuffer 就是增强的 String, Buffer(缓冲器)
        //StringBuffer 是 AbstractStringBuilder 的子类
        //在父类 AbstractStringBuilder 中有 char[] value 属性 不是final
        //value 数组存放字符串内容,并引出存放到堆中
        //String vs StringBuffer
        // String:
        // String保存的是字符串常量, 里面的值不能修改, 每次String类的更新实际是更改地址
        // private final char value[];
        // StringBuffer:
        // StringBuffer保存的是字符串变量, 里面的值可以更改,
        // 每次StringBuffer更新实际可以更新内容, 不需要每次更新地址,
        // char[] value; 存放在堆中
        //1. StingBuffer 常用的三种构造器
        //   1.1 StringBuffer() 无参构造器
        //       传递16给父类,创建一个长度为16的char数组
        StringBuffer sBuffer1 = new StringBuffer();
        //   1.2 StringBuffer(String str) 一个String行参的构造器
        //       使用实参的长度加上16 传递给父类,创建char数组
        //       这里我们传入的是hello,即: hello.length + 16;
        String str1 = "hello";
        StringBuffer sBuffer2 = new StringBuffer(str1);
        //   1.3 StringBuffer(int n) 一个int行参的构造器
        //       指定数组长度, 传入的实参就是创建数组的长度
        //       这里我们传入的是100, 即: 数组长度= 100;
        StringBuffer sBuffer3 = new StringBuffer(100);

        // String <--> StringBuffer 相互转换
        //2. String --> StringBuffer
        //   2.1 通过构造器直接传入转换
        String str2 = "hello,world";
        StringBuffer stringBuffer = new StringBuffer(str2);
        //   2.2 通过append()方法传入转换
        StringBuffer stringBuffer1 = new StringBuffer();
        stringBuffer.append(str2);

        //3. StringBuffer --> String
        //   3.1 使用StringBuffer提供的toString()方法
        StringBuffer stringBuffer2 = new StringBuffer("hello,java");
        String s = stringBuffer2.toString();
        //   3.2 使用String构造器
        String s1 = new String(stringBuffer2);

        //4. StringBuffer 常用方法
        //   4.1  .append(String str) 增加 将传入实参拼接到数组最后
        StringBuffer stringBuffer3 = new StringBuffer("ilike");
        stringBuffer3.append("java");
        System.out.println(stringBuffer3);
        //   4.2  .delete() 删除 传入两个int实参 第一个为要删除的开始位置 第二个为删除的结束位置(包括)
        StringBuffer stringBuffer4 = new StringBuffer("hello i like java");
        stringBuffer4.delete(0, 6);
        System.out.println(stringBuffer4);
        //   4.3  .replace(start,end,string) 更改 传入要开始和结束的index(不含当前值) 和要更改的内容
        StringBuffer stringBuffer5 = new StringBuffer("hello,world");
        StringBuffer java = stringBuffer5.replace(6, 11, "java");
        System.out.println(java);
        //   4.4  .indexOf() 找子串在字符串第1次出现的索引,如果找不到返回-1
        StringBuffer stringBuffer6 = new StringBuffer("hello,java");
        System.out.println(stringBuffer6.indexOf("java"));
        //   4.5  .insert() 在指定索引位置插入子串
        StringBuffer stringBuffer7 = new StringBuffer("hellojava");
        stringBuffer7.insert(5, ",");
        System.out.println(stringBuffer7);
        //   4.6  .length() 获取字符串长度
        StringBuffer java1 = new StringBuffer("java");
        System.out.println(java1.length());

        //测试题 将price 13311231.23 以 13,311,231.23 格式输出
        String price = "13311231.23";
        StringBuffer stringBuffer8 = new StringBuffer(price);
        //注释:
        //price.lastIndexOf() 从找到子串最右侧出现的位置
        //price.lastIndexOf(".") // 以 . 所在的索引位置为起点
        //price.lastIndexOf(".") - 3 //向左移动3为开始插入
        //i -= 3 //每移动3个索引插入一次
        //stringBuffer8.insert(i, ",")  StringBuffer.insert() 插入方法
        //实参 i 表示插入的位置 “,” 表示插入的子串
        for (int i = price.lastIndexOf(".") - 3; i > 0; i -= 3) {
            stringBuffer8.insert(i, ",");
        }
        System.out.println(stringBuffer8);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值