类 String、StringBuffer、StringBuilder
类 String
String
类代表字符串。Java 程序中的所有字符串字面值(如 "abc"
)都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
绿色字体的方法(函数)存在重载,根据实际需求使用。
charAt(int index)
返回指定索引处的 char
值。
compareTo(String anotherString)
按字典顺序比较两个字符串。
getBytes()
使用平台的默认字符集将此 String
编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
contentEquals(CharSequence cs)
将此字符串与指定的 CharSequence
比较。
copyValueOf(char[] data)
返回指定数组中表示该字符序列的 String。
equals(Object anObject)
将此字符串与指定的对象比较。
equalsIgnoreCase(String anotherString)
将此 String
与另一个 String
比较,不考虑大小写。
hashCode()
返回此字符串的哈希码。
indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
lastIndexOf(int ch)
返回指定字符在此字符串中最后一次出现处的索引。
length()
返回此字符串的长度。
subSequence(int beginIndex, int endIndex)
返回一个新的字符序列,它是此序列的一个子序列。
substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
toCharArray()
将此字符串转换为一个新的字符数组。
toLowerCase()
使用默认语言环境的规则将此 String
中的所有字符都转换为小写。
toUpperCase()
使用默认语言环境的规则将此 String
中的所有字符都转换为大写。
trim()
返回字符串的副本,忽略前导空白和尾部空白。
valueOf(Object obj)
返回 Object
参数的字符串表示形式。
类 StringBuffer
线程安全的可变字符序列。一个类似于 String
的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
StringBuffer
上的主要操作是 append
和 insert
方法,可重载这些方法,以接受任意类型的数据。
绿色字体的方法(函数)存在重载,根据实际需求使用。
append(CharSequence s)
将指定的 CharSequence
添加到该序列。
charAt(int index)
返回指定索引处的 char
值。
delete(int start, int end)
删除这个序列的子字符串中的字符。
deleteCharAt(int index)
删除在这个序列在指定的位置的字符。
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
从这个序列字符复制到目标字符数组dst
.
indexOf(String str)
返回索引在这个字符串的第一次出现的指定子字符串。
insert(int offset, char c)
将字符参数的字符串表示形式插入到此序列。
lastIndexOf(int ch)
返回指定字符在此字符串中最后一次出现处的索引。
setCharAt(int index, char ch)
这个字符数组在指定的索引设置为ch。
setLength(int newLength)
设置字符序列的长度。
subSequence(int beginIndex, int endIndex)
返回一个新的字符序列,它是此序列的一个子序列。
substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
toString()
返回一个字符串,表示这个序列中的数据。
trimToSize()
试图减少存储用于字符序列。
类 StringBuilder
一个可变的字符序列。此类提供一个与 StringBuffer
兼容的 API,但不保证同步。该类被设计用作 StringBuffer
的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer
要快。
方法(函数)和类StringBuffer的基本一致,在线程上的使用有所不同。
类 String、StringBuffer、StringBuilder的更多相关文章
- 重温java中的String,StringBuffer,StringBuilder类
不论什么一个系统在开发的过程中, 相信都不会缺少对字符串的处理. 在 java 语言中, 用来处理字符串的的类经常使用的有 3 个: String.StringBuffer.StringBuilder ...
- java中 String StringBuffer StringBuilder的区别
* String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...
- String,StringBuffer,StringBuilder的区别
public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...
- 关于String StringBuffer StringBuilder
0. String对象的创建 1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...
- [置顶] String StringBuffer StringBuilder的区别剖析
这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...
- String StringBuffer StringBuilder (转)
转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...
- 【Java基础】String StringBuffer StringBuilder
String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...
- String,StringBuffer,StringBuilder的区别及其源码分析
String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...
- final,finally,finalize有什么区别?String, StringBuffer, StringBuilder有什么区别?Exception和Error有什么区别?
继上篇JVM学习之后,后面将分三期深入介绍剩余JAVA基础面试题,每期3题. 题目一.final,finally,finalize有什么区别? /*请尊重作者劳动成果,转载请标明原文链接:*/ /* ...
- 浅谈 Java 字符串(String, StringBuffer, StringBuilder)
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String ...
随机推荐
- nginx 限制ip访问频率和限速 (摘录)
限制某个IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分 ...
- CREATE SEQUENCE添加自增序列及NEXT VALUE FOR返回序列号
From :https://msdn.microsoft.com/zh-cn/library/ff878091.aspx 语法: CREATE SEQUENCE [schema_name . ] se ...
- c#中从string数组转换到int数组及比较两个字符串相等
string[] input = { "1", "2", "3", "4", "5", " ...
- js将用户上传gif动图分解成多张帧图片
js将用户上传gif动图分解成多张帧图片 写在前面 工作中遇到一个这么一个需求:这是一个多图上传的场景,如果用户上传选择多张图片,则上传后直接展示多张图片,如果上传的图片是gif动图,则需要分解这张动 ...
- vm中安装ubuntu16
安装完成后,开机出现 smbus host controller not enabled 上网照着网友的建议: 在grub界面选择高级选项 root shell 进入到shell之后 mount -o ...
- cnetos 6.7彻底解决vmware NAT网络问题
cnetos 6.7彻底解决vmware NAT网络问题 vmnet8在nat时使用 vmnet1 在桥接时使用 *解决Windows不能ping通linux的问题 vmnet8相当于一个网卡,虚 ...
- Leetcode392. Is Subsequence
Description Given a string s and a string t, check if s is subsequence of t. You may assume that the ...
- 【翻译自mos文章】在Oracle GoldenGate中循环使用ggserr.log的方法
在OGG中循环使用ggserr.log的方法: 參考原文: OGG How Do I Recycle The "ggserr.log" File? (Doc ID 967932.1 ...
- 自定义View -- 柱状图 我也来自定义个柱状图来玩玩
遇到要用到图的时候总是再找第三方开源,但有时这个图非常简单,用第三方开源来用的话有点得不偿失,所以我就自己撸了个柱状图出来 当然你如果觉得需求很复杂,那么你可以去使用这些开源 MPAndroidCha ...
- Android中*_handle_t/ANativeWindowBuffer/ANativeWindow/GraphicBuffer/Surface的关系
在阅读SurfaceFlinger HardwareComposer以及gralloc相关代码的过程中,我们经常会遇到native_handle private_handle_t ANativeWin ...