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);
}
}
Java基础StringAndStringBuffer笔记
最新推荐文章于 2024-08-18 22:05:18 发布