Java 编程中广泛使用的字符串是字符序列。 在Java编程语言中,字符串被视为对象。
Java 平台提供了 String 类来创建和操作字符串。
创建字符串
创建字符串最直接的方法是
String greeting = "Hello world!";
每当在代码中遇到字符串文字时,编译器都会创建一个 String 对象,其值在本例中为"Hello world!"。
与任何其他对象一样,您可以使用 new 关键字和构造函数创建 String 对象。 String 类有 11 个构造函数,允许您使用不同的源(例如字符数组)提供字符串的初始值。
例子
public class StringDemo {
public static void main(String args[]) {
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray);
System.out.println( helloString );
}
}
输出
hello.
注意 - String 类是不可变的,因此一旦创建 String 对象就无法更改。 如果需要对字符串进行大量修改,那么您应该使用String Buffer & String Builder 类
字符串长度
用于获取有关对象的信息的方法称为访问器方法。 可用于字符串的一种访问器方法是 length() 方法,它返回字符串对象中包含的字符数。
以下程序是 String 类方法 length() 的示例。
例子
public class StringDemo {
public static void main(String args[]) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
System.out.println( "String Length is : " + len );
}
}
以下是输出结果
输出
String Length is : 17
字符串拼接
String 类包含一个用于连接两个字符串的方法 -
string1.concat(string2);
这将返回一个新字符串,即 string1,并在末尾添加了 string2。 您还可以将 concat() 方法与字符串文字一起使用,如下所示 -
"My name is ".concat("Zara");
字符串更常见地使用 + 运算符连接,如 -
"Hello," + " world" + "!"
结果为
"Hello, world!"
让我们看下面的例子 -
例子
public class StringDemo {
public static void main(String args[]) {
String string1 = "saw I was ";
System.out.println("Dot " + string1 + "Tod");
}
}
输出
Dot saw I was Tod
格式化字符串
您可以使用 printf() 和 format() 方法来打印带有格式化数字的输出。 String 类有一个等效的类方法 format(),它返回 String 对象而不是 PrintStream 对象。
使用 String 的静态 format() 方法可以创建可重复使用的格式化字符串,而不是一次性打印语句。 例如,而不是 -
例子
System.out.printf("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
您也可以写成
String fs;
fs = String.format("The value of the float variable is " +
"%f, while the value of the integer " +
"variable is %d, and the string " +
"is %s", floatVar, intVar, stringVar);
System.out.println(fs);
字符串方法
以下是 String 类支持的方法列表。
序号 | 方法与方法说明 |
---|
1. | char charAt(int index) 返回值指定索引处的 char 值. |
2. | int codePointAt(int index) 返回指定索引处的字符(Unicode 代码点)。 |
3. | int codePointBefore(int index) 返回指定索引之前的字符(Unicode 代码点). |
4. | int codePointCount(int beginIndex, int endIndex) 返回此字符串的指定文本范围内的 Unicode 代码点数量. |
5. | intcompareTo(String anotherString) 按字典顺序比较两个字符串. |
6. | intcompareToIgnoreCase(String str) 比较两个按字典顺序排列字符串,忽略大小写差异. |
7. | String concat(String str) 将指定字符串连接到该字符串的末尾. |
8. | boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时返回 true. |
9. | boolean contentEquals(CharSequence cs) 将此字符串与指定的 CharSequence 进行比较. |
10. | boolean contentEquals(StringBuffer sb) 将此字符串与指定的 StringBuffer 进行比较. |
11. | static String copyValueOf(char[] data) 等价于 valueOf(char[] ). |
12. | static String copyValueOf(char[] data, int offset, int count) 等价于 valueOf(char[], int, int). |
13. | booleanendsWith(String suffix) 测试此字符串是否以指定后缀结尾. |
14. | boolean equals(Object anObject) 将此字符串与指定对象进行比较. |
15. | boolean equalsIgnoreCase(String anotherString) 将此字符串与另一个字符串进行比较,忽略大小写. |
16. | static String format(String format, Object... args) 使用指定的格式字符串和参数返回格式化字符串. |
17. | static String format(Locale l, String format, Object... args) 使用指定的语言环境、格式字符串和参数返回格式化字符串. |
18 . | byte[] getBytes() 使用平台的默认字符集将此 String 编码为字节序列,并存储结果到一个新的字节数组. |
19. | byte[] getBytes(Charset charset) 使用给定的字符集将此字符串编码为字节序列,并将结果存储到新的字节数组中。 |
20. | byte[] getBytes(String charsetName) 使用指定的字符集将此字符串编码为字节序列,并将结果存储到新的字节数组中. |
21. | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin ) 将此字符串中的字符复制到目标字符数组中. |
22. | int hashCode() 返回此字符串的哈希码. |
23. | int indexOf(int ch) 返回此字符串中指定字符第一次出现的索引. |
24. | int indexOf(int ch, int fromIndex) 返回该字符串中第一次出现的索引指定字符,从指定索引处开始搜索. |
25. | int indexOf(String str ) 返回此字符串中指定子字符串第一次出现的索引. |
26. | int indexOf(String str, int fromIndex) 返回此字符串中指定子字符串第一次出现的索引,从指定索引开始. |
27. | String intern() 返回字符串对象的规范表示形式. |
28. | boolean isEmpty() 如果满足以下条件则返回 true ,且仅当 length() 为 0 时. |
29. | static String join(CharSequence delimiter, CharSequence... elements) 返回一个由 CharSequence 元素的副本与指定分隔符的副本连接在一起组成的新字符串. |
30. | static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements) 返回一个由 CharSequence 元素的副本与指定分隔符的副本连接在一起组成的新字符串. |
31. | int lastIndexOf(int ch) 返回此字符串中最后一次出现指定字符的索引. |
32. | int lastIndexOf(int ch, int fromIndex) 返回索引在最后一次出现指定字符的字符串中,从指定索引处开始向后搜索. |
33. | int lastIndexOf(String str) 返回此字符串中最后一次出现的指定子字符串的索引. |
34. | int lastIndexOf(String str, int fromIndex) 返回此字符串中最后一次出现的指定子字符串的索引,搜索从指定索引开始向后. |
35. | int length() 返回此字符串的长度. |
36. | boolean matches(String regex) 判断此字符串是否与给定的正则表达式匹配. |
37. | int offsetByCodePoints(int index, int codePointOffset) 返回此字符串中从给定索引偏移 codePointOffset 代码点的索引. |
38. | boolean regionMatches(int toffset, String other, int ooffset, int len) 测试两个字符串是否一致区域相等. |
39. | boolean regionMatches(booleanignoreCase,inttoffset,Stringother, int ooffset, int len) 测试两个字符串区域是否相等. |
40. | String Replace(char oldChar, char newChar) 返回用 newChar 替换此字符串中所有出现的 oldChar 所得到的字符串. |
41. | String replace(CharSequence target, CharSequence replacement) 替换此字符串中与文字匹配的每个子字符串具有指定文字替换序列的目标序列. |
42. | String ReplaceAll(String regex, String replacement) 用给定的替换替换该字符串中与给定正则表达式匹配的每个子字符串. |
43. | String ReplaceFirst(String regex, String replacement) 用给定的替换替换该字符串中与给定正则表达式匹配的第一个子字符串. |
44. | String[] split(String regex) 分割此字符串给定正则表达式的匹配项. |
45. | String[] split(String regex, int limit) 围绕给定正则表达式的匹配项拆分此字符串. |
46. | boolean attemptsWith(String prefix) 测试此字符串是否以指定前缀开头. |
47. | booleanstartsWith(String prefix, int toffset) 测试此字符串中从指定索引开始的子字符串是否以指定前缀开头. |
48. | CharSequence subSequence(int beginIndex, int endIndex) 返回作为该序列子序列的字符序列. |
49. | String substring(int beginIndex ) 返回一个字符串,该字符串是该字符串的子字符串. |
50. | String substring(int beginIndex, int endIndex) 返回作为此字符串的子字符串的字符串. |
51. | char[] toCharArray() 将此字符串转换为新的字符数组. |
52. | String toLowerCase() 使用以下规则将此字符串中的所有字符转换为小写默认区域设置. |
53. | String toLowerCase(Locale locale) 使用给定区域设置的规则将此字符串中的所有字符转换为小写. |
54. | String toString() 这个对象(已经是一个字符串!)本身被返回. |
55. | String toUpperCase() 使用默认语言环境的规则将此字符串中的所有字符转换为大写. |
56. | String toUpperCase(Locale locale) 将中的所有字符转换为大写使用给定区域设置的规则将此字符串转换为大写. |
57. | trim( ) 返回一个字符串,其值为该字符串,删除了所有前导和尾随空格. |
58. | static String valueOf(boolean b) 返回布尔参数的字符串表示形式. |
59. | static String valueOf(char c) 返回 char 参数的字符串表示形式. |
60. | static String valueOf(char[] data) 返回 char 的字符串表示形式数组参数. |
61. | static String valueOf(char[] data, int offset, int count) 返回 char 数组参数的特定子数组的字符串表示形式. |
62. | static String valueOf(double d) 返回 double 参数的字符串表示形式. |
63. | static String valueOf(float f) 返回 float 参数的字符串表示形式. |
64. | static String valueOf(int i) 返回 int 参数的字符串表示形式. |
65. | static String valueOf(long l) 返回字符串long参数的表示形式. |
66. | static String valueOf(Object obj) 返回 Object 参数的字符串表示形式. |