String

Character方法

1
2
3
4
5
isLetter(char ch): //判断指定的字符是否是字母
isDigit(char ch): //判断指定的字符是否是数字。
isUpperCase(char ch): //判断指定的字符是否是大写字母
isWhitespace(char ch): //判断指定的字符是否是空白字符,如空格、制表符或换行符
digit(char ch, int radix): //将字符转换为指定基数(如二进制、十进制等)的数值

String的创建

1
2
String str = "Runoob";
String str2=new String("Runoob");

同样也可以用str.length()来获取当前字符串的长度


String方法

查询

char charAt(int index):返回指定索引处的字符

int indexOf(String str):返回第一次出现的下标,没有的话返回-1

1
2
3
4
5
6
7
String str = "hello world";

// 使用 charAt(int index) 方法返回指定索引处的 char 值
char charAtIndex5 = str.charAt(5); // charAtIndex5 = ' '

// 使用 indexOf(String str) 方法返回子字符串第一次出现的下标
int firstIndexHello = str.indexOf("hello"); // firstIndexHello = 0

判断

boolean equals(Object object):判断字符串是否相等

boolean contains(String Sequence x):判断字符串里面是否有x子串

boolean startsWith(String Sequence x):判断字符串是否以x串开头

1
2
3
4
5
6
7
8
9
10
11
12
String str1 = "hello";
String str2 = "world";
String str3 = "hello";

// 使用 equals(Object object) 方法判断字符串是否相等
boolean isEqual1_2 = str1.equals(str2); // isEqual1_2 = false
boolean isEqual1_3 = str1.equals(str3); // isEqual1_3 = true

// 使用 contains(String sequence) 方法判断字符串是否包含子串
boolean containsHe = str1.contains("he"); // containsHe = true

boolean startsW = str1.startsWith("he"); //startsW = true

转换

String [ ] split(String regex)

  • 对现有的字符串按照正则表达式regex进行切割,并返回一个字符串数组
  • 如果想要把字符串切成一个个字符,就split(" ")即可,如果想让字符串按照空格来进行切割就可以用split(" ")

String valueOf(datatype x):返回给定datatype类型x参数的字符串表示形式。

char[] toCharArray():将此字符串转换为一个新的字符数组

1
2
3
4
5
6
7
8
9
10
11
12
String str = "hello world";

// 使用 split(String regex) 方法按照空格切割字符串,并返回一个字符串数组
String[] splitBySpace = str.split(" "); // splitBySpace = ["hello", "world"]

// 使用 valueOf(datatype x) 方法将给定数据类型 x 参数的字符串表示形式返回
int num = 123;
String strNum = String.valueOf(num); // strNum = "123"

// 使用 toCharArray() 方法将字符串转换为字符数组
char[] charArray = str.toCharArray(); // charArray = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

转换为List

1
2
String str = "hello world";
List<String> strList = Arrays.asList(str.split(" ")); // 使用 split() 方法将字符串分割成字符串数组,然后转换为 List

裁剪连接

String concat(String str):将指定字符串连接到末尾

String substring(int beginIndex):返回一个新的字符串,它是此字符串的一个子字符串。

String replace(char a,char b):将字符串里面的所有a,都替换成b,并且返回一个替换后的String字符串

String replaceFirst(String a,String b):将字符串中的第一个a,替换成b,并返回一个替换后的String字符串

String join(delimiter,String s...)String.join() 是 Java 8 引入的一个静态方法,它用于将多个字符串元素连接成一个单一的字符串,并在每个元素之间插入一个指定的分隔符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String str1 = "hello";
String str2 = "world";

// 使用 concat(String str) 方法将指定字符串连接到末尾
String str = str1.concat(str2); // str = "helloworld"

// 使用 substring(int beginIndex) 方法返回一个新的字符串,它是此字符串的一个子字符串
String subString = str.substring(5); // subString = "world"

// 使用 replace(char a, char b) 方法将字符串中的所有字符 a 替换为字符 b
String replacedString = str1.replace('l', 'z'); // replacedString = "hezzo"

// 使用 replaceFirst(String a, String b) 方法将字符串中的第一个子字符串 a 替换为子字符串 b
String replacedFirstString = str1.replaceFirst("l", "z"); // replacedFirstString = "hezlo"


遍历

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
String str="TheCandle";

// 方法一 利用charAt方法,将字符串转换为单个字符输出

for(int i=0;i < str.length();i++) {

System.out.println(str.charAt(i));
}


//方法二 用toCharArray方法,将字符串转化为字符数组

char[] c = str.toCharArray();

for(int i=0;i < c.length;i++) {

System.out.println(c[i]);
}

//方法三 用split(),将字符串转化为字符串数组
String[] s = str.split("");

for(int i=0;i < s.length;i++) {

System.out.println(s[i]);
}


操纵字符串的方法

如果频繁改变字符串变量,它会新开劈空间,再扔掉原本的空间,非常的浪费,和占用加载时间,但是StringBuffer不会,它会一直在一个空间里

StringBufferStringBuilder相比,保证了线程安全,但运行速度较慢

支持的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
StringBuffer sb=new StringBuffer(String st); 
(StringBuffer) sb.append("s");
//将指定的字符串追加到此字符序列。
(StringBuffer) sb.reverse();
//用反转形式取代
(void)sb.insert(int offset, int i);
//将int参数的字符串插入到该序列中
(String) toString();
// 返回此序列中数据的字符串表示形式,也就是将StringBuffer转换为String
(StringBuffer) replace(int start, int end, String str);
//用指定的字符替换此序列的子字符串中的字符String。
void setCharAt(int index, char ch);
//指定索引处的字符设置为ch。
void deleteCharAt(int index);
//删除索引处的字符

同样,StringBuilder也适用于这些方法