1、Java 字符串声明
字符串用于存文本内容。
String
变量包含一组用双引号引起来的字符:
例如:
声明一个类型为String
的变量,并为其分配一个值:
String cjavapy = "Hello";
2、Java 字符串长度
Java中的String
实际上是一个对象,其中包含可以对字符串执行某些操作的方法。例如,可以使用length()
方法找到字符串的长度:
例如:
String txt = "www.cjavapy.com"; System.out.println("txt字符串的长度: " + txt.length());
3、字符串方法
有许多可用的字符串方法,例如toUpperCase()
和toLowerCase()
:
例如:
String txt = "Hello World"; System.out.println(txt.toUpperCase()); // 输出 "HELLO WORLD" System.out.println(txt.toLowerCase()); // 输出 "hello world"
4、查找字符在字符串中的索引位置
indexOf()
方法返回字符串(包括空格)中第一次出现的指定文本的index索引(位置):
例如:
public class main { /** *API中String的常用方法 */ // 查找指定字符串是否存在 public static void main(String[] args) { String str1 = "abcdefghijklmnabc"; // 从头开始查找是否存在指定的字符 System.out.println(str1.indexOf("c")); // 从第四个字符位置开始往后继续查找 System.out.println(str1.indexOf("c", 3)); //若指定字符串中没有该字符则系统返回-1 System.out.println(str1.indexOf("x")); } }
Java中位置下标从0开始计数。0是字符串中的第一个位置,1是第二个位置,2是第三个位置...等。
5、字符串连接
可以在字符串之间使用+
运算符来拼接它们。
例如:
String a = "cjavapy"; String b = "com"; System.out.println(a +"."+ b);
还可以使用concat()
方法来连接两个字符串:
例如:
String a = "cjavapy."; String b = "com"; System.out.println(a.concat(b));
6、Java 特殊字符(转义字符)
因为字符串必须用引号引起来,所以Java会误解此字符串,并产生错误:
String txt = "the url is "cjavapy.com""; System.out.println(txt);
字符中使用的特殊字符是需要使用反斜杠转义才能包含在其中的。
反斜杠(\
)转义字符将特殊字符转换为字符串字符:
转义符 | 结果 | 描述 |
\' | ' | 单引号 |
\" | " | 双引号 |
\\ | \ | 反斜杠 |
\“
会在字符串中插入双引号:
例如:
String txt = "the url is \"cjavapy.com\""; System.out.println(txt);
\'
会在字符串中插入一个单引号:
例如:
String txt = "the url\'s name is \"cjavapy.com\""; System.out.println(txt);
\\
会在字符串中插入一个反斜杠:
例如:
String txt = "反斜杠:\\"; System.out.println(txt);
Java中字符字符:
特殊字符 | 说明 |
\n | 换行符 |
\r | 回车符 |
\t | 水平制表符(相当于tab,缩进) |
\b | 退格符(Backspace) |
\f | 换页符 |
7、字符串与数字相加
Java使用+
操作符可以进行数字加法运算和字符串连接。下面看一下如果字符串和数字使用+
操作符的情况:
String x = "10"; int y = 20; String z = x + y; // z 的结果是 1020 (字符串) System.out.println(z);
8、Java 字符串判断相等
在其它编程语言中,判断两个字符串相等比较的代码可以使用==直接进行判断:
string1==string2
但在Java中,这个代码即使在两个字符串完全相同的情况下也有可能会返回false。Java中必须使用string1.equals(string2)
来进行判断。
例如,
String s1="cjavapy";
String s2="cjavapy";
String s3=new String("cjavapy");
String s4=new String("cjavapy");
System.out.println(s1==s2);
System.out.println(s3==s4);
System.out.println(s1.equals(s2));
System.out.println(s3.equals(s4));
9、字符串方法
序号 | 方法描述 |
---|---|
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() 判断字符串是否为空。 |