字符串基础
字符串类型 String 是一个引用数据类型,所以字符串的使用和普通数据类型( byte/int/short/char/long/float/double/boolean/等 )有不同的地方:
- 字符串使用双引号 " 包裹,字符串内容可以是空的 “”
- 判断两个字符串是否相等不能用 == 等号,要使用 .equals() 方法
- 字符串使用 + 加号是拼接,能拼接其他类型数据为一个新的字符串
- 字符串可以赋值 null ,字符串数组中元素默认为空 null 这和 “” 空字符串不同
- 如果对象的属性是字符串类型,没有赋值的情况下默认值也是 null
String a;
a = "";
// 报错
if(a == "") {
//...
}
// 正确比较方式
if(a.equals("")) {
//...
}
// 拼接字符串
a = a + 'a' + 1 + 1.2;
System.out.println("a=" + a); // a=a11.2
// 数组和类中的字符串默认为 null
String[] sz = new String[5];
System.out.println("sz[0]=" + sz[0]); //显示:sz[0]= null
字符串方法
方法 | 说明 | 示例 |
---|---|---|
length() | 得到字符串长度,返回值为整数 | ”abc“.length() == 3 |
str1.equals(str2) | 比较两个字符串是否相等,返回 boolean 类型 | “abc”.euqals(“123”) == false |
str1.equalsIgnoreCase(str2) | 比较两个字符串是否相等,忽略大小写 | “abc”.euqals(“ABC”) == true |
str1.toUpperCase() | 将字符串转换成大写并返回 | “abc”.toUpperCase() == “ABC” |
toLowerCase() | 将字符串转换成小写 | |
str1.indexof(str2) | 查询子字符串在字符串中出现的第一个位置,不存在就返回 -1 | “abc”.indexOf(“bc”) == 1 |
str1.lastIndexOf(str2) | 查询个子字符串在字符串中最后位置,不存在就返回 -1 | “aaa”.lastIndexOf(“a”) == 2 |
str1.substring(start, end) | 截取字符串中某一个部分,从开始到结束位置,不包含结束位置,如果不提供结束位置,则截取到最后 | “abc”.substring(1) == “bc”; “abc”.substring(1, 2) == “b” |
str1.split(delimiter) | 根据间隔符拆分字符串,返回一个字符串数组 | “a-b-c”.split("-") == {“a”,“b”,“c”} |
str1.replace(olds, news) | 将 olds 字符串替换为 news 字符串并返回 | “abc”.replace(“ab”,“12”) == “12c” |
str1.concat(substr) | 将字符串拼接到原字符串得到一个新的字符串返回 | “abc”.concat(“123”) == “abc123” |
startsWith(“str”) | 字符串是否以 str 开头,返回布尔类型 | “abc”.startsWith(“a”) == true |
endsWith(“str”) | 字符串是否以 str 结尾,返回布尔值 | “abc”.endsWith(“bc”) == true |
str.trim() | 删除字符串前后空白字符 | " a ".trim() == “a” |
str1.charAt(index) | 返回指定下标位置的字符 | “abc”.charAt(0) == ‘a’ |
Integer.parseInt(s1) | 将s1字符串转换为数字 | s1=“123” ; int num = Integer.parseInt(s1) ==123 |
String.valueOf(i) | 将数字转为字符串 | int i = 123; String s1 = String.valueOf(i); s1 = “123”; |
示例代码:
String a = "abc,123,abc,456"
int len = a.length(); // 15
String b = "AdMin";
boolean equal = b.equalsIgnoreCase("admin"); // true
String b1 = b.toUpperCase(); // ADMIN
String b2 = b.toLowerCase(); // admin
int c = a.indexOf("b"); // 1,注意:位置从0开始
c = a.indexOf("abc"); // 0,和a的位置相同
c = a.indexOf("abcde"); // -1,找不到
c = a.lastIndexOf("b"); // 9,最后一个b的位置
String d = a.substring(9); // bc,456,从9下标到最后,包括9坐标
d = a.substring(9, 11); // bc 从9到11位置,包括9不包括11位置
d = a.replace("123", "xyz"); // d=abc,xyz,abc,456
d = a.concat("789"); // d=abc,123,abc,456789
String[] sz = a.split(","); // {"abc", "123", "abc", "456"}