Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类
一、String类
1.创建字符串对象
创建字符串对象有两种方法:直接用“=”或者使用“new String(...)”
String aStr = "TMZ";String bStr = new String("TMZ");String nullStr = "";String nullStr_1 = new String();String nullStr_2 = new String("");
2.连接字符串
使用“+”运算符可以连接字符串。字符串可以和任意类型的数据进行字符串连接操作,若该数据为基本类型,则会自动转换为字符串;若为引用类型,则会自动调用所引对象的toString()方法获得一个字符串,然后再进行字符串的连接操作。
System.out.println("TMZ" + 1996); //TMZ1996System.out.println("10" + 7.5F); //107.5System.out.println("TMZ" + true); //TMZtrueSystem.out.println("TMZ" + "SJY"); //TMZSJYSystem.out.println("SJY" + "TMZ"); //SJYTMZ
在判断是字符串连接符还是加法运算符时,按照先左后右的顺序,根据运算符两边的类型来决定是进行加法运算还是进行字符串连接。
System.out.println("TMZ" + 1996 + 2.2); //TMZ19962.2System.out.println(1996 + 2.2 + "TMZ"); //1998.2TMZ
3.字符串操作
(1)比较字符串
equals():区分字母大小写 equalIgnoreCase():不区分大小写 startWith(String prefix):判断字符串是否以prefix字符串开始 endsWith(String prefix):判断字符串是否以prefix字符串结束 startWith(String prefix, int offset):判断字符串是否从第offset起始位置以prefix字符串开始 compareTo(): 比较两个字符串,大于返回一个正数,小于返回一个负数,相等返回0
(2)获取字符串的长度:str.length()
(3)字符串的大小写转换:str.toLowerCase(); str.toUpperCase();
(4)查找字符串
(1)indexOf(int ch):用于获取指定字符在原字符串中第一次出现的索引。 (2)lastIndexOf (int ch):用于获取指定字符在原字符串中最后一次出现的索引。 (3)indexOf(String str):用于获取指定字符串在原字符串中第一次出现的索引。 (4)lastIndexOf(String str):用于获取指定字符在原字符串中最后一次出现的索引。 (5)indexOf(int ch, int startIndex):用于获取指定字符在原字符串中指定索引位置开始第一次出现的索引。 (6)lastIndexOf (int ch, int startIndex):用于获取指定字符在原字符串中指定索引位置开始最后一次出现的索引。 (7)indexOf(String str, int startIndex):用于获取指定字符串在原字符串中指定索引位置开始第一次出现的索引。 (8)lastIndexOf(String str, int startIndex):用于获取指定字符在原字符串中指定索引位置开始最后一次出现的索引。
(5)从现有字符串中截取子字符串
public String substring(int beginIndex) public String substring(int beginIndex, int endIndex)
(6)去掉字符串的首位空格
public String trim()
(7)替换字符串中的字符或子串
public String replace(char oldChar, char newChar):替换所有字符 public String replaceAll(String regex, String replacement):替换所有子字符串 public String replaceFirst(String regex, String replacement):替换第一个子字符串
(8)分割字符串
public String[] split(String regex, int limit) regex:表示分割规则 limit:表示分割规则的应用次数,如果limit>0,则得到的String数组的长度不会大于limit limit为0时,String数组中位于最后的所有空字符串元素将被丢弃,等价于public String[] split(String regex)
4.格式化字符串
(1)两种format方法
public static String format(String format, Object... args) // 依据本地的语言环境进行格式化 public static String format(Locale locate, String format, Object... args) // 依据设定的语言环境locate进行格式化
5.对象的字符串表示
(1)如果用来构建对象的类中没有toString方法,那么就调用默认的Object类中的toString()方法返回“包名.类名@内存的引用地址”
(2)如果用来构建对象的类中实现了toString()方法,那么就使用这个对象调用这个toString()方法并返回“包名.类名@对象.toString()”
二、StringBuffer类
StringBuffer类和String类都是用来代表字符串的,但是它们的内部实现方式不同。String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符。而StringBuffer类创建的字符串对象是可以修改的。
1.StringBuffer的初始化
StringBuffer s = new StringBuffer(); //初始化的StringBuffer对象是一个空对象 StringBuffer s = new StringBuffer("123"); //初始化的StringBuffer对象不是一个空对象
2.StringBuffer构造方法
StringBuffer() // 分配给该对象的初始容量可以容纳16个字符。当该对象的实体存放的字符序列的长度大于16时,实体的容量自动增加,以便存放所有增加的字符。 StringBuffer(int size) //分配给该对象的初始容量可以容纳16个字符。当该对象的实体存放的字符序列的长度大于16时,实体的容量自动增加,以便存放所有增加的字符。 StringBuffer(String s) //分配给该对象的初始容量为参数字符串s的长度额外在增加16个字符。
3.常用方法
(1)追加字符串
使用append方法可以将其他Java类型数据转化为字符串后,再追加到StringBuffer对象中。 StringBuffer append(String s):将一个字符串对象追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。 StringBuffer append(int n):将一个int型数据转化为字符串对象后再追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。 StringBuffer append(Object o):将一个Object对象o的字符串表示追加到当前StringBuffer对象中,并返回当前StringBuffer对象的引用。 类似的方法还有: StringBuffer append(boolean b)StringBuffer append(char c)StringBuffer append(long n)StringBuffer append(float f)StringBuffer append(double d)
(2)获取单个字符或设置指定字符
public char charAt(int n)// charAt(int n)用来获取参数n指定位置上的单个字符。字符串序列从0开始,即当前对象实体中n的值必须是非负的,并且小于当前对象实体中字符串的序列长度。public void setCharAt(int n,char ch) // 用来将当前StringBuffer对象实体中的字符对象位置n处的字符用参数ch指定的字符替换。n的值必须是非负的,并且小于当前对象实体中字符串序列的长度。
(3)插入字符串
StringBuffer insert(int index,String str) // 将参数str指定的字符串插入到参数index的位置,并返回当前对象的引用。
(4)反转字符串
public StringBuffer reverse() // StringBuffer对象使用reverse()方法将该对象实体中的字符翻转,并返回当前对象的引用
(5)删除子字符串或字符
StringBuffer delete(int startIndex,int endIndex) // 用于删除子字符串。参数startIndex指定需删除的第一个字符的下标,而endIndex指定了需删除的最后一个字符的下一个字符的下标。// 因此要删除的子字符串是从startIndex位置开始到endIndex-1的位置结束。deleteCharAt(int index)方法删除当前StringBuffer对象实体的字符串中在index位置的字符。
(6)替换子字符串或字符
StringBuffer replace(int startIndex,int endIndex,String str) // 将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换。// 被替换的子字符串由下标startIndex和endIndex指定,即从starIndex到endIndex-1的字符串被替换。该方法返回当前StringBuffer对象的引用。
三、数据缓冲区
数据缓冲区是由具有相同类型的数值构成的数组,Buffer类是一个抽象类,它的子类包括:ByteBuffer、CharBuffer、DoubleBuffer、IntBuffer、LongBuffer和ShortBuffer。
注意:StringBuffer类与这些缓冲区没有关系。
最常使用的是ByteBuffer和CharBuffer类,每个缓冲区的的特征是:
- 一个容量,它永远不能改变。
- 一个读写位置,下一个值将在此进行读写。
- 一个界限,超过它进行读写是没有意义的。
- 一个可选的标记,用于重复一个读入或读写操作。
这些值满足下面的条件:0≤标记≤读写位置≤界限≤容量。
常用方法:
Buffer clear():将位置复位到0,并将界限设置到容量,使这个缓冲区为写出做好准备 Buffer flip():将界限设置到位置,将位置复位到0,使这个缓冲区为读入做好准备 Buffer rewind():将读写位置复位到0,并保持界限不变,使这个缓冲区为重新读入相同的值做好准备 Buffer mark():将这个缓冲区的标记设置到读写位置 Buffer reset():将这个缓冲区的位置设置到标记,从而允许被标记的部分可以再次被读入或写出 int remaining():返回剩余可读写或可写出值的数量,即界限与位置之间的差异 int capacity():返回这个缓冲区的容量 int position():返回这个缓冲区的位置
转载于:https://www.cnblogs.com/BigJunOba/p/9439660.html
Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类相关推荐
- java基本类型有缓冲区类型的有_Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类...
一.String类 1.创建字符串对象 创建字符串对象有两种方法:直接用"="或者使用"new String(...)" String aStr = " ...
- java基础第十四天_IO
1.定义函数,输出一个byte的二进制字符串. 2.定义工具类,完成int数和byte[]之间的相互转换. 3.阐述IO流. 输入输出流 字符字节流 缓冲和非缓冲流 转换流. 4.通过File对象打印 ...
- akka typed mysql_现代化的 Java (三十四)—— Akka Typed 的 Clojure 封装和简化
这几天在家读了一下 Akka Typed 的文档,发现还是挺有意思的. 这个体系已经是 Akka 官方推荐的默认风格,现在打开 Akka 官网的最新版 Akka 文档(2.6.0),入门教程就是 ty ...
- RHEL6基础三十四之服务器维护基础命令④sort、uniq
sort 格式:sort [-options] filename[s] 功能:将文件的每一行作为一个单位,相互比较,最后将他们按升序输出,比较原则是从首字符向后,依次按ASCII码值进行比较. 1 2 ...
- 重学java基础第二十四课:标识符合关键字
- 重学java基础第十四课:java特性和优势
- 【零基础学Java】—Calendar类(三十四)
[零基础学Java]-Calendar类(三十四) java.util.Calendar日历类 Calendar类是一个抽象类,里面提供了很多操作日历字段的方法 Calendar类无法直接创建对象,里 ...
- 三十四、深入Java中的泛型(上篇)
@Author:Runsen @Date:2019年10月22日 19:39:21 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件 ...
- JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)
JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...
最新文章
- live555工程建立与调试
- jQuery 分类导航菜单条点击变色
- C# App.config 自定义 配置节
- 《等离子体所毕业生经验分享会》观后感 2020-07-03
- MIUI 10 Android 原生字体,[教程] MIUI10全局字体替换教程,了解一下?
- 几款常用的编辑器介绍,给刚入门学Web前端的人
- Mac下安装Flink的local模式(flink-1.5.2)
- Katta:基于Lucene可伸缩分布式实时搜索方案
- 如何利用jQuery post传递含特殊字符的数据
- 424.替换后的最长重复字符
- 暴风php视频怎么打开,暴风下载的视频怎样转换视频格式
- VMware Tools详细步骤
- 空间索引 - Redis/MongoDB/PostgreSQL/MySQL空间索引使用报告
- 结束的起点——又是一年毕业季!
- IIS部署ASP网站项目详细教程(内部含有子目录)
- (日常)Dell R740 XD 服务器安装GPU显卡记录
- 吴恩达 深度神经网络,吴恩达神经网络课程
- 淘宝开放平台订单接口
- python 画图 设置 中英文字体
- MWC18丨中兴通讯联合GSMA举办5G峰会 迎接万物智联世界