JavaSE常用类之StringBuilder 和 StringBuffer以及File类

StringBuilder 和 StringBuffer以及File类的说明及实例
摘要由CSDN通过智能技术生成

目录

1.StringBuilder 和 StringBuffer

1、概述

【演示:查看源码及API文档】

 【源码概览】

2、常用方法

1、insert

2、append

3、replace

4、delete

5、index

6、其他API

3、StringBuffer

4、小结

【String、StringBuffer、StringBuilder之间的区别】

5、面试题的回答

6.File类的基本用法

1. java.io.File类:文件和目录路径名的抽象表示形式。

2. File的静态属性String separator存储了当前系统的路径分隔符。

7. 通过File对象可以访问文件的属性。

1. 通过File对象创建空文件或目录(在该对象所指的文件或目录不存在的情况下)。

2. 常见构造器,方法

【演示】


1.StringBuilder 和 StringBuffer

1、概述

【演示:查看源码及API文档】

public final class StringBuilder
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence{
}

StringBuilder 是一个可变的字符序列。它继承于AbstractStringBuilder,实现了CharSequence接口。 StringBuffer 也是继承于AbstractStringBuilder的子类;但是,StringBuilder和StringBuffer不同,前者 是非线程安全的,后者是线程安全的。

StringBuilder 和 CharSequence之间的关系图如下:

 【源码概览】

package java.lang;
public final class StringBuilder
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence {
static final long serialVersionUID = 4383685877147921099L;
// 构造函数。默认的字符数组大小是16。
public StringBuilder() {
super(16);
}
// 构造函数。指定StringBuilder的字符数组大小是capacity。
public StringBuilder(int capacity) {
super(capacity);
}
// 构造函数。指定字符数组大小=str长度+15,且将str的值赋值到当前字符数组中。
public StringBuilder(String str) {
super(str.length() + 16);
append(str);
}
// 构造函数。指定字符数组大小=seq长度+15,且将seq的值赋值到当前字符数组中。
public StringBuilder(CharSequence seq) {
this(seq.length() + 16);
append(seq);
}
// 追加“对象obj对应的字符串”。String.valueOf(obj)实际上是调用obj.toString()
public StringBuilder append(Object obj) {
return append(String.valueOf(obj));
}
// 追加“str”。
public StringBuilder append(String str) {
super.append(str);
return this;
}
// 追加“sb的内容”。
private StringBuilder append(StringBuilder sb) {
if (sb == null)
return append("null");
int len = sb.length();
int newcount = count + len;
if (newcount > value.length)
expandCapacity(newcount);
sb.getChars(0, len, value, count);
count = newcount;
return this;
}
// 追加“sb的内容”。
public StringBuilder append(StringBuffer sb) {
super.append(sb);
return this;
}
// 追加“s的内容”。
public StringBuilder append(CharSequence s) {
if (s == null)
s = "null";
if (s instanceof String)
return this.append((String)s);
if (s instanceof StringBuffer)
return this.append((StringBuffer)s);
if (s instanceof StringBuilder)
return this.append((StringBuilder)s);
return this.append(s, 0, s.length());
}
// 追加“s从start(包括)到end(不包括)的内容”。
public StringBuilder append(CharSequence s, int start, int end) {
super.append(s, start, end);
return this;
}
// 追加“str字符数组对应的字符串”
public StringBuilder append(char[] str) {
super.append(str);
return this;
}
// 追加“str从offset开始的内容,内容长度是len”
public StringBuilder append(char[] str, int offset, int len) {
super.append(str, offset, len);
return this;
}
// 追加“b对应的字符串”
public StringBuilder append(boolean b) {
super.append(b);
return this;
}
// 追加“c”
public StringBuilder append(char c) {
super.append(c);
return this;
}
// 追加“i”
public StringBuilder append(int i) {
super.append(i);
return this;
}
// 追加“lng”
public StringBuilder append(long lng) {
super.append(lng);
return this;
}
// 追加“f”
public StringBuilder append(float f) {
super.append(f);
return this;
}
// 追加“d”
public StringBuilder append(double d) {
super.append(d);
return this;
}
// 追加“codePoint”
public StringBuilder appendCodePoint(int codePoint) {
super.appendCodePoint(codePoint);
return this;
}
// 删除“从start(包括)到end的内容”
public StringBuilder delete(int start, int end) {
super.delete(start, end);
return this;
}
// 删除“位置index的内容”
public StringBuilder deleteCharAt(int index) {
super.deleteCharAt(index);
return this;
// “用str替换StringBuilder中从start(包括)到end(不包括)的内容”
public StringBuilder replace(int start, int end, String str) {
super.replace(start, end, str);
return this;
}
// “在StringBuilder的位置index处插入‘str中从offset开始的内容’,插入内容长度是
len”
public StringBuilder insert(int index, char[] str, int offset,
int len)
{
super.insert(index, str, offset, len);
return this;
}
// “在StringBuilder的位置offset处插入obj对应的字符串”
public StringBuilder insert(int offset, Object obj) {
return insert(offset, String.valueOf(obj));
}
// “在StringBuilder的位置offset处插入str”
public StringBuilder insert(int offset, String str) {
super.insert(offset, str);
return this;
}
// “在StringBuilder的位置offset处插入str”
public StringBuilder insert(int offset, char[] str) {
super.insert(offset, str);
return this;
}
// “在StringBuilder的位置dstOffset处插入s”
public StringBuilder insert(int dstOffset, CharSequence s) {
if (s == null)
s = "null";
if (s instanceof String)
return this.insert(dstOffset, (String)s);
return this.insert(dstOffset, s, 0, s.length());
}
// “在StringBuilder的位置dstOffset处插入's中从start到end的内容'”
public StringBuilder insert(int dstOffset, CharSequence s,
int start, int end)
{
super.insert(dstOffset, s, start, end);
return this;
}
// “在StringBuilder的位置Offset处插入b”
public StringBuilder insert(int offset
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值