小白教程
所有教程
关于
Search
172.70.126.92
172.70.126.92
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Java String 类”的源代码
本页内容
上一节:
Java_Character_类
下一节:
Java_StringBuffer_和_StringBuilder_类
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:Java String 类}}[[Category:Java 教程|15]] = Java String 类 = 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 == 创建字符串 == 创建字符串最简单的方式如下: <sample title="" desc="" lang="java" hererun="1"> String str = "xiaoBai"; </sample> 在代码中遇到字符串常量时,这里的值是 "'''xiaoBai'''",编译器会使用该值创建一个 String 对象。 和其它对象一样,可以使用关键字和构造方法来创建 String 对象。 用构造函数创建字符串: <sample title="" desc="" lang="java" hererun="1"> String str2=new String("xiaoBai"); </sample> String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上: <sample title="" desc="" lang="java" hererun="1"> String s1 = "xiaoBai"; // String 直接创建 String s2 = "xiaoBai"; // String 直接创建 String s3 = s1; // 相同引用 String s4 = new String("xiaoBai"); // String 对象创建 String s5 = new String("xiaoBai"); // String 对象创建 </sample> String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,比如提供一个字符数组参数: == StringDemo.java 文件代码: == <sample title="" desc="" lang="java" hererun="1"> 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 ); } } </sample> 以上实例编译运行结果如下: <pre> xiaobai </pre> '''注意:'''String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了(详看笔记部分解析)。 如果需要对字符串做很多修改,那么应该选择使用 [[java stringbuffer|StringBuffer & StringBuilder 类]]。 == 字符串长度 == 用于获取有关对象的信息的方法称为访问器方法。 String 类的一个访问器方法是 length() 方法,它返回字符串对象包含的字符数。 下面的代码执行后,len 变量等于 14: == StringDemo.java 文件代码: == <sample title="" desc="" lang="java" hererun="1"> public class StringDemo { public static void main(String args[]) { String site = "www.xiaobai.wang"; int len = site.length(); System.out.println( "小白教程网址长度 : " + len ); } } </sample> 以上实例编译运行结果如下: <pre> 小白教程网址长度 : 14 </pre> == 连接字符串 == String 类提供了连接两个字符串的方法: <sample title="" desc="" lang="java" hererun="1"> string1.concat(string2); </sample> 返回 string2 连接 string1 的新字符串。也可以对字符串常量使用 concat() 方法,如: <pre>"我的名字是 ".concat("xiaoBai");</pre> 更常用的是使用'+'操作符来连接字符串,如: <pre> "Hello," + " xiaobai" + "!"</pre> 结果如下: <pre> "Hello, xiaobai!"</pre> 下面是一个例子: == StringDemo.java 文件代码: == <sample title="" desc="" lang="java" hererun="1"> public class StringDemo { public static void main(String args[]) { String string1 = "小白教程网址:"; System.out.println("1、" + string1 + "www.xiaobai.wang"); } } </sample> 以上实例编译运行结果如下: <pre> 1、小白教程网址:www.xiaobai.wang </pre> == 创建格式化字符串 == 我们知道输出格式化数字可以使用 printf() 和 format() 方法。 String 类使用静态方法 format() 返回一个String 对象而不是 PrintStream 对象。 String 类的静态方法 format() 能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出。 如下所示: <sample title="" desc="" lang="java" hererun="1"> System.out.printf("浮点型变量的值为 " + "%f, 整型变量的值为 " + " %d, 字符串变量的值为 " + "is %s", floatVar, intVar, stringVar); </sample> 你也可以这样写 <sample title="" desc="" lang="java" hererun="1"> String fs; fs = String.format("浮点型变量的值为 " + "%f, 整型变量的值为 " + " %d, 字符串变量的值为 " + " %s", floatVar, intVar, stringVar); </sample> == String 方法 == 下面是 String 类支持的方法,更多详细,参看 [https://www.xiaobai.wang/manual/jdk11api/java.base/java/lang/String.html Java String API] 文档: {| class="table table-striped table-hover" ! SN(序号) ! 方法描述 |- | 1 | [[java string charat|char charAt(int index)]] 返回指定索引处的 char 值。 |- | 2 | [[java string compareto|int compareTo(Object o)]] 把这个字符串和另一个对象比较。 |- | 3 | [[java string compareto|int compareTo(String anotherString)]] 按字典顺序比较两个字符串。 |- | 4 | [[java string comparetoignorecase|int compareToIgnoreCase(String str)]] 按字典顺序比较两个字符串,不考虑大小写。 |- | 5 | [[java string concat|String concat(String str)]] 将指定字符串连接到此字符串的结尾。 |- | 6 | [[java string contentequals|boolean contentEquals(StringBuffer sb)]] 当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真。 |- | 7 | [[java string copyvalueof|static String copyValueOf(char[] data)]] 返回指定数组中表示该字符序列的 String。 |- | 8 | [[java string copyvalueof|static String copyValueOf(char[] data, int offset, int count)]] 返回指定数组中表示该字符序列的 String。 |- | 9 | [[java string endswith|boolean endsWith(String suffix)]] 测试此字符串是否以指定的后缀结束。 |- | 10 | [[java string equals|boolean equals(Object anObject)]] 将此字符串与指定的对象比较。 |- | 11 | [[java string equalsignorecase|boolean equalsIgnoreCase(String anotherString)]] 将此 String 与另一个 String 比较,不考虑大小写。 |- | 12 | [[java string getbytes|byte[] getBytes()]] 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |- | 13 | [[java string getbytes|byte[] getBytes(String charsetName)]] 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |- | 14 | [[java string getchars|void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)]] 将字符从此字符串复制到目标字符数组。 |- | 15 | [[java string hashcode|int hashCode()]] 返回此字符串的哈希码。 |- | 16 | [[java string indexof|int indexOf(int ch)]] 返回指定字符在此字符串中第一次出现处的索引。 |- | 17 | [[java string indexof|int indexOf(int ch, int fromIndex)]] 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 |- | 18 | [[java string indexof|int indexOf(String str)]] 返回指定子字符串在此字符串中第一次出现处的索引。 |- | 19 | [[java string indexof|int indexOf(String str, int fromIndex)]] 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 |- | 20 | [[java string intern|String intern()]] 返回字符串对象的规范化表示形式。 |- | 21 | [[java string lastindexof|int lastIndexOf(int ch)]] 返回指定字符在此字符串中最后一次出现处的索引。 |- | 22 | [[java string lastindexof|int lastIndexOf(int ch, int fromIndex)]] 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 |- | 23 | [[java string lastindexof|int lastIndexOf(String str)]] 返回指定子字符串在此字符串中最右边出现处的索引。 |- | 24 | [[java string lastindexof|int lastIndexOf(String str, int fromIndex)]] 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 |- | 25 | [[java string length|int length()]] 返回此字符串的长度。 |- | 26 | [[java string matches|boolean matches(String regex)]] 告知此字符串是否匹配给定的正则表达式。 |- | 27 | [[java string regionmatches|boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)]] 测试两个字符串区域是否相等。 |- | 28 | [[java string regionmatches|boolean regionMatches(int toffset, String other, int ooffset, int len)]] 测试两个字符串区域是否相等。 |- | 29 | [[java string replace|String replace(char oldChar, char newChar)]] 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 |- | 30 | [[java string replaceall|String replaceAll(String regex, String replacement)]] 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 |- | 31 | [[java string replacefirst|String replaceFirst(String regex, String replacement)]] 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 |- | 32 | [[java string split|String[] split(String regex)]] 根据给定正则表达式的匹配拆分此字符串。 |- | 33 | [[java string split|String[] split(String regex, int limit)]] 根据匹配给定的正则表达式来拆分此字符串。 |- | 34 | [[java string startswith|boolean startsWith(String prefix)]] 测试此字符串是否以指定的前缀开始。 |- | 35 | [[java string startswith|boolean startsWith(String prefix, int toffset)]] 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 |- | 36 | [[java string subsequence|CharSequence subSequence(int beginIndex, int endIndex)]] 返回一个新的字符序列,它是此序列的一个子序列。 |- | 37 | [[java string substring|String substring(int beginIndex)]] 返回一个新的字符串,它是此字符串的一个子字符串。 |- | 38 | [[java string substring|String substring(int beginIndex, int endIndex)]] 返回一个新字符串,它是此字符串的一个子字符串。 |- | 39 | [[java string tochararray|char[] toCharArray()]] 将此字符串转换为一个新的字符数组。 |- | 40 | [[java string tolowercase|String toLowerCase()]] 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 |- | 41 | [[java string tolowercase|String toLowerCase(Locale locale)]] 使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。 |- | 42 | [[java string tostring|String toString()]] 返回此对象本身(它已经是一个字符串!)。 |- | 43 | [[java string touppercase|String toUpperCase()]] 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 |- | 44 | [[java string touppercase|String toUpperCase(Locale locale)]] 使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。 |- | 45 | [[java string trim|String trim()]] 返回字符串的副本,忽略前导空白和尾部空白。 |- | 46 | [[java string valueof|static String valueOf(primitive data type x)]] 返回给定data type类型x参数的字符串表示形式。 |- | 47 | [[java string contains|contains(CharSequence chars)]] 判断是否包含指定的字符系列。 |- | 48 | [[java string isempty|isEmpty()]] 判断字符串是否为空。 |}
返回至“
Java String 类
”。
上一节:
Java_Character_类
下一节:
Java_StringBuffer_和_StringBuilder_类