Java String类
1 什么是Java String类
在Java中,String字符串是一个表示char值序列的对象。例如:
char[] ch={'y','i','i','d','i','a','n'};
String s=new String(ch);
或
String s="yiidian";
Java String类提供了许多对字符串执行操作的方法,例如compare(),concat(),equals(),split(),length(),replace(),compareTo(),intern(),substring()等等。
java.lang.String类实现Serializable,Comparable和CharSequence接口。
2 CharSequence接口
CharSequence接口用于表示字符序列。String,StringBuffer和StringBuilder类实现它。这意味着,我们可以使用这三个类在Java中创建字符串。
Java字符串是不可变的,这意味着它不能更改。每当我们更改任何字符串时,都会创建一个新实例。对于可变字符串,可以使用StringBuffer和StringBuilder类。
3 如何创建String对象
有两种创建String对象的方法:
- 直接使用String声明
- 通过new关键字
3.1 直接使用String声明
Java字符串是使用双引号创建的。例如:
String s="welcome";
每次创建字符串内容时,JVM都会首先检查“String字符串常量池”。如果该字符串已经存在池中,则返回对该池实例的引用。如果该字符串在池中不存在,则会创建一个新的字符串实例并将其放置在池中。例如:
String s1="Welcome";
String s2="Welcome";//这行代码不创建新的字符串对象
在上面的示例中,我们仅仅创建一个字符串对象。首先,JVM在字符串常量池中找不到任何内容为“ Welcome”的字符串对象,然后创建一个新的字符串对象。之后,我们将在常量池中找到值为“ Welcome”的字符串,就不会创建新字符串对象啦,而是直接返回对之前对象的引用。
3.2 通过new关键字
String s=new String("Welcome");//创建两个字符串对象和一个引用变量
在这种情况下,JVM将在普通(非常量池)堆内存中创建一个新的字符串对象,同时将内容“ Welcome”放置在字符串常量池中。变量s引用堆(非池)中的对象。
4 Java String类的例子
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java String的例子
*/
public class Demo{
public static void main(String args[]){
String s1="java";//通过java字符串文字创建字符串
char ch[]={'s','t','r','i','n','g','s'};
String s2=new String(ch);//将char数组转换为字符串
String s3=new String("example");//通过new关键字创建Java字符串
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
}
}
输出结果为:
java
strings
example
5 Java String类的方法
java.lang.String类提供了许多有用的方法来对char值序列执行操作。
方法 | 描述 |
---|---|
charAt() | 返回特定索引的char值 |
compareTo() | 将此String对象与另一个对象进行比较 |
concat() | 将指定的字符串连接到此字符串的末尾。 |
contains() | 用于判断字符串string分是否包含子字符串 |
endsWith() | 判断此字符串是否以指定的字符作为后缀结尾。 |
equals() | 将此字符串与指定的对象进行比较。 |
equalsIgnoreCase() | 将此String与另一个String进行比较,忽略大小写。 |
format() | 用于创建格式化的字符串以及连接多个字符串对象。 |
getBytes() | 使用平台的默认字符集将此String编码为字节序列,将结果存储到新的字节数组中。 |
getChars() | 将此字符串中的字符复制到目标字符数组中。 |
indexOf() | 返回指定字符在此字符串中第一次出现的索引。 |
intern() | 返回字符串对象的规范表示。 |
isEmpty() | 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 |
join() | 在指定 String 数组B的每个元素之间串联指定的分隔符 A,从而产生单个串联的字符串 |
lastIndexOf() | 返回指定字符在此字符串中最后一次出现的索引。 |
length() | 返回此字符串的长度。 |
replace() | 返回一个新字符串,该字符串是使用newChar替换此字符串中出现的所有oldChar后的字符串。 |
replaceAll() | 将替换此字符串中匹配给定正则表达式的每个子字符串。 |
split() | 将此字符串拆分为给定正则表达式的匹配项。 |
startsWith() | 判断此字符串是否以指定的字符串前缀开头。 |
substring() | 返回一个新字符串,该字符串是此字符串的子字符串。 |
toCharArray() | 将此字符串转换为新的字符数组。 |
toLowerCase() | 使用默认语言环境的规则将此String中的所有字符转换为小写。 |
toUpperCase() | 使用默认语言环境的规则将此String中的所有字符转换为大写。 |
trim() | 返回字符串的副本,移除前导和尾随空格。 |
valueOf() | 返回传递的数据类型参数的字符串表示形式。 |
热门文章
优秀文章