String 类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。

 

 

String 创建的字符串存储在常量池中(只有一个,再有相同的值会直接引用),而 new 创建的字符串对象在堆上(每new一个都是新的一块区域):

String s1 = "abc";              // String 直接创建  
String 2 = new String("abc");   // String 对象创建  

 

Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。如:

String str = "abc";
str = str + "111" + "222";

但是,并不推荐此种方法,因为每操作一次就会创建一个新的对象,最后操作几次就会有几个无用对象,消耗内存。

一般需要叠加字符串的操作,都使用StringBuffer或StringBuilder类

 

方法:

常用:isEmpty\isBlank判空、equals相等、replace替换、split\substring切割、trim删除前后空格

变量和类型方法描述
char charAt​(int index)
返回指定索引处的 char值。
IntStream chars()
返回 int的流,将此序列中的 char值零扩展。
int codePointAt​(int index)
返回指定索引处的字符(Unicode代码点)。
int codePointBefore​(int index)
返回指定索引之前的字符(Unicode代码点)。
int codePointCount​(int beginIndex, int endIndex)
返回此 String的指定文本范围内的Unicode代码点数。
IntStream codePoints()
返回此序列中的代码点值流。
int compareTo​(String anotherString)
按字典顺序比较两个字符串。
int compareToIgnoreCase​(String str)
按字典顺序比较两个字符串,忽略大小写差异。
String concat​(String str)
将指定的字符串连接到此字符串的末尾。
boolean contains​(CharSequence s)
当且仅当此字符串包含指定的char值序列时,才返回true。
boolean contentEquals​(CharSequence cs)
将此字符串与指定的 CharSequence
boolean contentEquals​(StringBuffer sb)
将此字符串与指定的 StringBuffer
static String copyValueOf​(char[] data)
相当于 valueOf(char[])
static String copyValueOf​(char[] data, int offset, int count)
boolean endsWith​(String suffix)
测试此字符串是否以指定的后缀结尾。
boolean equals​(Object anObject)
将此字符串与指定的对象进行比较。
boolean equalsIgnoreCase​(String anotherString)
将此 String与另一个 String比较,忽略了大小写。
static String format​(String format, Object... args)
使用指定的格式字符串和参数返回格式化字符串。
static String format​(Locale l, String format, Object... args)
使用指定的语言环境,格式字符串和参数返回格式化的字符串。
byte[] getBytes()
使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
void getBytes​(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
已过时。
此方法无法将字符正确转换为字节。
byte[] getBytes​(String charsetName)
使用命名的字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
byte[] getBytes​(Charset charset)
使用给定的charset将此String编码为字节序列,将结果存储到新的字节数组中。
void getChars​(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将此字符串中的字符复制到目标字符数组中。
int hashCode()
返回此字符串的哈希码。
int indexOf​(int ch)
返回指定字符第一次出现的字符串中的索引。
int indexOf​(int ch, int fromIndex)
返回指定字符第一次出现的此字符串中的索引,从指定索引处开始搜索。
int indexOf​(String str)
返回指定子字符串第一次出现的字符串中的索引。
int indexOf​(String str, int fromIndex)
从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。
String intern()
返回字符串对象的规范表示。
boolean isBlank()
如果字符串为空或仅包含 white space代码点,则返回 true ,否则 false
boolean isEmpty()
返回 true ,当且仅当, length()0
static String join​(CharSequence delimiter, CharSequence... elements)
返回由 CharSequence elements的副本组成的新String,该副本与指定的 delimiter的副本连接在一起。
static String join​(CharSequence delimiter, Iterable<? extends CharSequence> elements)
返回由 String的副本组成的新 String ,其中 CharSequence elements指定的 delimiter的副本。
int lastIndexOf​(int ch)
返回指定字符最后一次出现的字符串中的索引。
int lastIndexOf​(int ch, int fromIndex)
返回指定字符最后一次出现的字符串中的索引,从指定的索引开始向后搜索。
int lastIndexOf​(String str)
返回指定子字符串最后一次出现的字符串中的索引。
int lastIndexOf​(String str, int fromIndex)
返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。
int length()
返回此字符串的长度。
Stream<String> lines()
返回从此字符串中提取的行的流,由行终止符分隔。
boolean matches​(String regex)
判断此字符串是否与给定的 regular expression匹配。
int offsetByCodePoints​(int index, int codePointOffset)
返回此 String中的索引,该索引从给定的 index偏移 codePointOffset代码点。
boolean regionMatches​(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
boolean regionMatches​(int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
String repeat​(int count)
返回一个字符串,其值为此字符串的串联重复 count次。
String replace​(char oldChar, char newChar)
返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar
String replace​(CharSequence target, CharSequence replacement)
将此字符串中与文字目标序列匹配的每个子字符串替换为指定的文字替换序列。
String replaceAll​(String regex, String replacement)
将给定替换的给定 regular expression匹配的此字符串的每个子字符串替换。
String replaceFirst​(String regex, String replacement)
将给定替换的给定 regular expression匹配的此字符串的第一个子字符串替换。
String[] split​(String regex)
将此字符串拆分为给定 regular expression的匹配
String[] split​(String regex, int limit)
将此字符串拆分为给定 regular expression的匹配
boolean startsWith​(String prefix)
测试此字符串是否以指定的前缀开头。
boolean startsWith​(String prefix, int toffset)
测试从指定索引开始的此字符串的子字符串是否以指定的前缀开头。
String strip()
返回一个字符串,其值为此字符串,并删除了所有前导和尾随 white space
String stripLeading()
返回一个字符串,其值为此字符串,并删除了所有前导 white space
String stripTrailing()
返回一个字符串,其值为此字符串,并删除所有尾随 white space
CharSequence subSequence​(int beginIndex, int endIndex)
返回作为此序列的子序列的字符序列。
String substring​(int beginIndex)
返回一个字符串,该字符串是此字符串的子字符串。
String substring​(int beginIndex, int endIndex)
返回一个字符串,该字符串是此字符串的子字符串。
char[] toCharArray()
将此字符串转换为新的字符数组。
String toLowerCase()
使用默认语言环境的规则将此 String所有字符转换为小写。
String toLowerCase​(Locale locale)
使用给定 Locale的规则将此 String所有字符转换为 Locale
String toString()
这个对象(已经是一个字符串!)
String toUpperCase()
使用默认语言环境的规则将此 String所有字符转换为大写。
String toUpperCase​(Locale locale)
使用给定 Locale的规则将此 String所有字符转换为大写。
String trim()
返回一个字符串,其值为此字符串,删除了所有前导和尾随空格,其中space被定义为其代码点小于或等于 'U+0020' (空格字符)的任何字符。
static String valueOf​(Object obj)
返回 Object参数的字符串表示形式。 

 

StringBuffer

线程安全(使用同步锁,字符串缓冲区可供多个线程使用),可变的字符序列。 字符串缓冲区类似于String ,但可以进行修改。 在任何时间点它都包含一些特定的字符序列,但序列的长度和内容可以通过某些方法调用来改变。

最常使用其append追加方法,拼接字符串,使用toSting()输出字符串。

变量和类型方法描述
StringBuffer append​(Object obj)
追加 Object参数的字符串表示形式。
StringBuffer appendCodePoint​(int codePoint)
codePoint参数的字符串表示形式追加到此序列。
int capacity()
返回当前容量。
char charAt​(int index)
返回指定索引处的此序列中的 char值。
IntStream chars()
返回 int的流,对此序列中的 char值进行零扩展。
int compareTo​(StringBuffer another)
StringBuffer字典顺序比较两个 StringBuffer实例。
StringBuffer delete​(int start, int end)
删除此序列的子字符串中的字符。
int indexOf​(String str)
返回指定子字符串第一次出现的字符串中的索引。
int indexOf​(String str, int fromIndex)
从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。
StringBuffer insert​(int offset, String str)
将字符串插入此字符序列。
int lastIndexOf​(String str)
返回指定子字符串最后一次出现的字符串中的索引。
int lastIndexOf​(String str, int fromIndex)
返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。
StringBuffer replace​(int start, int end, String str)
使用指定的 String的字符替换此序列的子字符串中的字符。
StringBuffer reverse()
导致此字符序列被序列的反向替换。
void setCharAt​(int index, char ch)
指定索引处的字符设置为 ch
void setLength​(int newLength)
设置字符序列的长度。
CharSequence subSequence​(int start, int end)
返回一个新的字符序列,它是该序列的子序列。
String substring​(int start)
返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。
String substring​(int start, int end)
返回一个新的 String ,其中包含当前包含在此序列中的字符的子序列。
void trimToSize()
尝试减少用于字符序列的存储空间。 

 

StringBuilder

一个可变的字符序列。 此类提供与StringBuffer兼容的API,但不保证同步。

此类设计用作StringBuffer替代品,用于单个线程使用字符串缓冲区的位置(通常情况下)。 在可能的情况下,建议使用此类优先于StringBuffer因为在大多数实现中它会更快。

 posted on 2021-03-06 21:55  一计  阅读(26)  评论(0)    收藏  举报