Java String ç±»

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java �供了 String 类�创建和�作字符串。


创建字符串

创建字符串最简�的方�如下:

String str = "Runoob";

在代�中�到字符串常�时,这里的值是 "Runoob",编译器会使用该值创建一个 String 对象。

和其它对象一样,�以使用关键字和构造方法�创建 String 对象。

用构造函数创建字符串:

String str2=new String("Runoob");

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:

String s1 = "Runoob"; // String 直接创建 String s2 = "Runoob"; // String 直接创建 String s3 = s1; // 相�引用 String s4 = new String("Runoob"); // String 对象创建 String s5 = new String("Runoob"); // String 对象创建

String 类有 11 �构造方法,这些方法�供��的�数��始化字符串,比如�供一个字符数组�数:

StringDemo.java 文件代�:

public class StringDemo{ public static void main(String args[]){ char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'}; String helloString = new String(helloArray); System.out.println( helloString ); } }

以上实例编译�行结果如下:

runoob

注�:String 类是��改�的,所以你一旦创建了 String 对象,那它的值就无法改�了(详看笔记部分解�)。

如果需�对字符串�很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。


字符串长度

用于获�有关对象的信�的方法称为访问器方法。

String 类的一个访问器方法是 length() 方法,它返回字符串对象包�的字符数。

下�的代�执行�,len ��等于 14:

StringDemo.java 文件代�:

public class StringDemo { public static void main(String args[]) { String site = "www.runoob.com"; int len = site.length(); System.out.println( "�鸟教程网�长度 : " + len ); } }

以上实例编译�行结果如下:

�鸟教程网�长度 : 14

连接字符串

String 类�供了连接两个字符串的方法:

string1.concat(string2);

返回 string2 连接 string1 的新字符串。也�以对字符串常�使用 concat() 方法,如:

"我的�字是 ".concat("Runoob");

更常用的是使用'+'�作符�连接字符串,如:

"Hello," + " runoob" + "!"

结果如下:

"Hello, runoob!"

下�是一个例�:

StringDemo.java 文件代�:

public class StringDemo { public static void main(String args[]) { String string1 = "�鸟教程网�:"; System.out.println("1�" + string1 + "www.runoob.com"); } }

以上实例编译�行结果如下:

1��鸟教程网�:www.runoob.com

创建格�化字符串

我们知�输出格�化数字�以使用 printf() 和 format() 方法。

String 类使用��方法 format() 返回一个String 对象而�是 PrintStream 对象。

String 类的��方法 format() 能用�创建��用的格�化字符串,而�仅仅是用于一次打�输出。

如下所示:

System.out.printf("浮点型��的值为 " + "%f, 整型��的值为 " + " %d, 字符串��的值为 " + "is %s", floatVar, intVar, stringVar);

你也�以这样写

String fs; fs = String.format("浮点型��的值为 " + "%f, 整型��的值为 " + " %d, 字符串��的值为 " + " %s", floatVar, intVar, stringVar);

String 方法

下�是 String 类支�的方法,更多详细,�看 Java String API 文档:

SN(��) 方法�述
1 char charAt(int index)
返回指定索引处的 char 值。
2 int compareTo(Object o)
把这个字符串和�一个对象比较。
3 int compareTo(String anotherString)
按字典顺�比较两个字符串。
4 int compareToIgnoreCase(String str)
按字典顺�比较两个字符串,�考虑大�写。
5 String concat(String str)
将指定字符串连接到此字符串的结尾。
6 boolean contentEquals(StringBuffer sb)
当且仅当字符串与指定的StringBuffer有相�顺�的字符时候返回真。
7 static String copyValueOf(char[] data)
返回指定数组中表示该字符�列的 String。
8 static String copyValueOf(char[] data, int offset, int count)
返回指定数组中表示该字符�列的 String。
9 boolean endsWith(String suffix)
测试此字符串是�以指定的�缀结�。
10 boolean equals(Object anObject)
将此字符串与指定的对象比较。
11 boolean equalsIgnoreCase(String anotherString)
将此 String 与�一个 String 比较,�考虑大�写。
12 byte[] getBytes()
 ä½¿ç”¨å¹³å�°çš„默认字符集将此 String ç¼–ç �为 byte åº�列,并将结果存储到一个新的 byte 数组中。
13 byte[] getBytes(String charsetName)
使用指定的字符集将此 String 编�为 byte �列,并将结果存储到一个新的 byte 数组中。
14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此字符串�制到目标字符数组。
15 int hashCode()
返回此字符串的哈希�。
16 int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
17 int indexOf(int ch, int fromIndex)
返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始�索。
18 int indexOf(String str)
 è¿”回指定å­�字符串在此字符串中第一次出现处的索引。
19 int indexOf(String str, int fromIndex)
返回指定�字符串在此字符串中第一次出现处的索引,从指定的索引开始。
20 String intern()
 è¿”回字符串对象的规范化表示形å¼�。
21 int lastIndexOf(int ch)
 è¿”回指定字符在此字符串中最å�Žä¸€æ¬¡å‡ºçŽ°å¤„çš„ç´¢å¼•ã€‚
22 int lastIndexOf(int ch, int fromIndex)
返回指定字符在此字符串中最�一次出现处的索引,从指定的索引处开始进行���索。
23 int lastIndexOf(String str)
返回指定�字符串在此字符串中最�边出现处的索引。
24 int lastIndexOf(String str, int fromIndex)
 è¿”回指定å­�字符串在此字符串中最å�Žä¸€æ¬¡å‡ºçŽ°å¤„çš„ç´¢å¼•ï¼Œä»ŽæŒ‡å®šçš„ç´¢å¼•å¼€å§‹å��å�‘æ�œç´¢ã€‚
25 int length()
返回此字符串的长度。
26 boolean matches(String regex)
告知此字符串是�匹�给定的正则表达�。
27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串区域是�相等。
28 boolean regionMatches(int toffset, String other, int ooffset, int len)
测试两个字符串区域是�相等。
29 String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替�此字符串中出现的所有 oldChar 得到的。
30 String replaceAll(String regex, String replacement)
使用给定的 replacement 替�此字符串所有匹�给定的正则表达�的�字符串。
31 String replaceFirst(String regex, String replacement)
 ä½¿ç”¨ç»™å®šçš„ replacement 替æ�¢æ­¤å­—符串匹é…�给定的正则表达å¼�的第一个å­�字符串。
32 String[] split(String regex)
根�给定正则表达�的匹�拆分此字符串。
33 String[] split(String regex, int limit)
根�匹�给定的正则表达��拆分此字符串。
34 boolean startsWith(String prefix)
测试此字符串是�以指定的�缀开始。
35 boolean startsWith(String prefix, int toffset)
测试此字符串从指定索引开始的�字符串是�以指定�缀开始。
36 CharSequence subSequence(int beginIndex, int endIndex)
 è¿”回一个新的字符åº�列,它是此åº�列的一个å­�åº�列。
37 String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个�字符串。
38 String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个�字符串。
39 char[] toCharArray()
将此字符串转�为一个新的字符数组。
40 String toLowerCase()
使用默认语言环境的规则将此 String 中的所有字符都转�为�写。
41 String toLowerCase(Locale locale)
 ä½¿ç”¨ç»™å®š Locale 的规则将此 String 中的所有字符都转æ�¢ä¸ºå°�写。
42 String toString()
 è¿”回此对象本身(它已ç»�是一个字符串ï¼�)。
43 String toUpperCase()
使用默认语言环境的规则将此 String 中的所有字符都转�为大写。
44 String toUpperCase(Locale locale)
使用给定 Locale 的规则将此 String 中的所有字符都转�为大写。
45 String trim()
返回字符串的副本,忽略�导空白和尾部空白。
46 static String valueOf(primitive data type x)
返回给定data type类型x�数的字符串表示形�。
47 contains(CharSequence chars)
判断是�包�指定的字符系列。
48 isEmpty()
判断字符串是�为空。