String类
1.String声明的两种方式
public class Demo1 {
public static void main(String[] args) {
//声明一个字符串类型的数据
//第一种声明方式
//str1在栈区
String str1 = "今天吃顿好的";
System.out.println(str1);
//第二种声明方式
//str2 在栈区
//"今天吃顿好的" 在堆区
String str2 = new String("今天吃顿好的");
System.out.println(str2);
}
}
-
String类是final修饰的,不能被继承
-
String对象的值都不能被其他操作所影响,所有的改变都会重新新建String对象
内存分析!!!
2.两个字符串进行比较
==: 比较的是内存的地址和内容
equals:先比较内存地址,再比较内容也返回true
public class Demo01 {
public static void main(String[] args) {
//在字符串常量池
String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
String str4 = new String("abc");
//== 比较的是内存的地址和内容
System.out.println(str1 == str2);//true
System.out.println(str1 == str3);//false
System.out.println(str3 == str4);//false
//值是否一样,不要去管内存地址
//equals
System.out.println(str1.equals(str2));//true
System.out.println(str2.equals(str3));//true
System.out.println(str3.equals(str4));//true
}
}
3.关于String类常用方法
equals方法 用来判断字符串的内容是否相等的 返回值是布尔类型的数据
boolean endWith(String str); 是否以指定的字符或者子字符串结尾
boolean isEmpty();判断是否为空
boolean conatins(String str); 是否包含子字符串
boolean equals(object obj); 判断字符串内容是否相等
boolean equalsIgnoreCase();忽略大小写 判断两个字符串是否相等
static valueOf(char[] chs);有方法重载 方法参数可以八大基本数据类型,作用将八大基本数据类型转为字符串
char[] toCharArray();将字符串转为字符数组
String replace(char oldChar, char newChar); 字符在字符串中的替换
String replaceAll(String regex, String original);字符串在字符串中的替换
String[] split(String regex); 以regex来进行字符串的切割
String subString(int beginIndex); 截取字符串的一部分
String subString(int beginIndex, int endIndex); 截取字符串的一部分
String toUpperCase();将小写字母转换为大写字母
String toLowerCase();将大写转为小写字母
String trim();去除字符串中首尾的空格
3.1String所有方法
-
返回值类型 该方法的背景及说明 char
charAt(int index)
返回char
指定索引处的值。int
codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。int
codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。int
codePointCount(int beginIndex, int endIndex)
返回此String
指定文本范围内的Unicode代码点数。int
compareTo(String anotherString)
按字典顺序比较两个字符串。int
compareToIgnoreCase(String str)
按字典顺序比较两个字符串,忽略病例差异。String
concat(String str)
将指定的字符串连接到该字符串的末尾。boolean
contains(CharSequence s)
当且仅当此字符串包含指定的char值序列时才返回true。boolean
contentEquals(CharSequence cs)
将此字符串与指定的CharSequence进行CharSequence
。boolean
contentEquals(StringBuffer sb)
将此字符串与指定的StringBuffer进行StringBuffer
。static String
copyValueOf(char[] data)
相当于valueOf(char[\])
。static String
copyValueOf(char[] data, int offset, int count)
相当于valueOf(char[\], int, int)
。boolean
endsWith(String suffix)
测试此字符串是否以指定的后缀结尾。boolean
equals(Object anObject)
将此字符串与指定对象进行比较。boolean
equalsIgnoreCase(String anotherString)
将此String
与其他String
比较,忽略案例注意事项。static String
format(Locale l, String format, Object... args)
使用指定的区域设置,格式字符串和参数返回格式化的字符串。static String
format(String format, Object... args)
使用指定的格式字符串和参数返回格式化的字符串。byte[]
getBytes()
使用平台的默认字符集将此String
编码为字节序列,将结果存储到新的字节数组中。byte[]
getBytes(Charset charset)
使用给定的charset将该String
编码为字节序列,将结果存储到新的字节数组中。void
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
已弃用 此方法无法将字符正确转换为字节。 从JDK 1.1开始,首选的方法是通过getBytes()
方法,该方法使用平台的默认字符集。byte[]
getBytes(String charsetName)
使用命名的字符集将此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
isEmpty()
返回true
如果,且仅当length()
为0
。static String
join(CharSequence delimiter, CharSequence... elements)
返回一个新的字符串,由CharSequence elements
的副本组成,并附有指定的delimiter的delimiter
。static String
join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
返回一个新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()
返回此字符串的长度。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
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)
测试在指定索引处开始的此字符串的子字符串是否以指定的前缀开头。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)
将所有在此字符String
,以降低使用给定的规则情况下Locale
。String
toString()
此对象(已经是字符串!)本身已被返回。String
toUpperCase()
将所有在此字符String
使用默认语言环境的规则大写。String
toUpperCase(Locale locale)
将所有在此字符String
使用给定的规则,大写Locale
。String
trim()
返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。static String
valueOf(boolean b)
返回boolean
参数的字符串boolean
形式。static String
valueOf(char c)
返回char
参数的字符串char
形式。static String
valueOf(char[] data)
返回char
数组参数的字符串char
形式。static String
valueOf(char[] data, int offset, int count)
返回char
数组参数的特定子阵列的字符串char
形式。static String
valueOf(double d)
返回double
参数的字符串double
形式。static String
valueOf(float f)
返回float
参数的字符串float
形式。static String
valueOf(int i)
返回int
参数的字符串int
形式。static String
valueOf(long l)
返回long
参数的字符串long
形式。static String
valueOf(Object obj)
返回Object
参数的字符串Object
形式。