String 类代表字符串,Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。因为 String 对象是不可变的,所以可以放心的共享。
public final class String//源码 implements java.io.Serializable, Comparable<String>, CharSequence
从Java.lang.String类的定义可知,String类实现了java.io.Serializable(可序列化)接口、Comparable<String>(可排序)接口,CharSequence(可读字符序列)接口。
---------------------------------------------------ASCII码-----------------------------------------
在对字符进行处理时,熟悉ASCII码非常有用(主要是数字和字母部分)
-------------------------------------------------------常用对象方法---------------------------------------------------
char charAt(int index) | 返回指定索引处的 char 值。 例:“你好啊”.charAt( 0 ) = 你 注:代码中如果出现中文,需将文件编码设置为ANSI编码 (如在notepad++里的设置是:菜单栏 --> 编码 --> 转为ANSI编码) |
int codePointAt(int index) | 返回指定索引处的字符(Unicode 代码点)。 例:“你好啊”.codePointAt( 0 ) = 20320 例:“程序设计”.codePointAt( 0 ) = 31243 |
int compareTo(String anotherString) | 按字典顺序比较两个字符串。 例:“你好啊”.compareTo( “程序设计” ) = -10923 -10923 = 20320 - 31243 |
int compareToIgnoreCase(String str) | 按字典顺序比较两个字符串,不考虑大小写。 例:"Baa".compareToIgnoreCase( "aaa") = 1 |
String concat(String str) | 将指定字符串连接到此字符串的结尾。 例:“Baa”.concat( “aaa” ) = “ Baaaaa ”; |
boolean contains(CharSequence s) | 当且仅当此字符串包含指定的 char 值序列时,返回 true。 例:“Baa”.contains( "aa" ) = true; |
boolean endsWith(String suffix) | 测试此字符串是否以指定的后缀结束。 例:"Baa".endsWith( "aa" ) = true; |
boolean startsWith(String prefix) | 测试此字符串是否以指定的前缀开始。 例:“Baa”.startsWith( "aa" ) = false; |
int hashCode() | 返回此字符串的哈希码。 公式: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] |
int indexOf(String str) | 返回指定字符串在此字符串中第一次出现处的索引,如果未出现该字符,则返回 -1。 例:“Coder666”.indexOf("Coder") = 0; |
int indexOf(String str, int fromIndex) | 返回指定字符串在此字符串指定索引之后第一次出现处的索引,如果未出现该字符,则返回 -1。 例:“Coder666_Coder666”.indexOf("Coder", 3) = 9; |
int indexOf(char ch) | 返回指定字符串在此字符串中第一次出现处的索引,如果未出现该字符,则返回 -1。 |
int indexOf(char ch, int fromIndex) | 返回指定字符串在此字符串指定索引之后第一次出现处的索引,如果未出现该字符,则返回 -1 |
int lastIndexOf(int ch) / (String str) | 返回指定字符(串)在此字符串中最后一次出现处的索引。 |
int lastIndexOf(int ch, int fromIndex) | 返回指定字符在此字符串指定索引之前最后一次出现处的索引。 |
int length() | 返回此字符串的长度。 例:“Coder666”.length() = 8 |
String replace(char oldChar, char newChar) | 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 例:“Coder888”.replace( '8' , '6') = "Coder666"; |
String replace(CharSequence target, CharSequence replacement) | 返回一个新的字符串,它是通过用 新字符子串replacement 替换此字符串中出现的所有 就字符子串 target 得到的。 例:"Coder888_Coder888".replace("888","666") |
String[] split(String regex) | 根据给定正则表达式的匹配拆分此字符串。 例:"Coder888_Coder888".split( "_" ) = { "Coder888" , "Coder666" }; |
String substring(int beginIndex, int endIndex) | 返回一个新字符串,它是此字符串的一个子字符串。 例:" Coder666_Java".substring( 5 , 8) = "666" |
char[] toCharArray() | 将此字符串转换为一个新的字符数组。 例:“Coder666”.toCharArray( ) = { ' C ' , ' o ' , ' d ' , ' e ' , ' r ' , ' 6 ' , ' 6 ' , ' 6 '} |
String toLowerCase() | 将此 String 中的所有字符都转换为小写。 例:“Coder666”.toLowerCase() = "coder666" |
String toUpperCase() | 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 例:“Coder666”.toUpperCase() = "CODER666" |
String trim() | 返回字符串的副本,忽略前导空白和尾部空白。 例:“ Coder666 ”.trim() = "CODER666" |
boolean matches(String regex) | 告知此字符串是否匹配给定的正则表达式。 |