目录
1.字符串的获取
基本语法形式:
String s = new String(<参数>);
1.获取空字符串
String s1 = new String();
System.out.println(s1);
2.字符数组获取字符串
方法1:
char[] arr = {"J","a","v","a"};
String s2 = new String(arr);
System.out.println(s2);
方法2:
byte[] b = "JavaSE".getBytes();
System.out.println(Arrays.toString(b));
String s = new String(b);
System.out.println(s);
3.直接获取
String s3 = "Java";
System.out.println(s3);
2.字符串比较
String s1 = "Hello";
String s2 = new Scanner(System.in).nextLine();
if(s1 == s2){ //字符串引用数据类型使用==判断时,比较的是内存地址
System.out.println("相等");
}else {
System.out.println("不等");
}
if(s1.equals(s2)){ //字符串引用数据类型使用equals判断时,比较的是大小
System.out.println("相等");
}else{
System.out.println("不等");
}
这段代码首先定义了一个字符串s1
为"Hello",然后通过用户输入获取了一个字符串s2
。
接下来,通过使用==
运算符来判断s1
和s2
是否相等。由于字符串是引用数据类型,使用==
运算符比较的是两个字符串对象的内存地址。在这个示例中,由于s1
和s2
分别是不同的字符串对象,它们的内存地址是不同的,因此if
条件不成立,输出"不等"。
接着,使用equals()
方法来比较s1
和s2
的字符串内容是否相等。equals()
方法比较的是字符串的内容而不是内存地址。在这个示例中,由于s1
和s2
的字符串内容都是"Hello",所以if
条件成立,输出"相等"。
所以,最终的输出结果是:"不等"和"相等"。
3.String类的常用方法
1.返回给定索引位置的对应字符
charAt()方法
String s = "qwertyu";
System.out.println(s.charAt(0));
2.比较字符串的大小
compareTo()方法
String s1 = "qwertyu";
String s2 = "qwertyuiio";
System.out.println(s2.compareTo(s1));
这段代码首先定义了两个字符串s1
为"qwertyu",s2
为"qwertyuiio"。
然后使用s2.compareTo(s1)
方法来比较s2
和s1
的大小。compareTo()
方法是字符串类的方法,用于比较两个字符串的大小关系。
该方法的返回值是一个整数,具体的返回值为:
- 如果
s2
的字典顺序在s1
之前,返回一个负整数。 - 如果
s2
的字典顺序与s1
相同,返回0。 - 如果
s2
的字典顺序在s1
之后,返回一个正整数。
在这个示例中,"qwertyuiio"在字典顺序上大于"qwertyu",因此s2.compareTo(s1)
返回一个正整数。
所以,代码的输出结果是一个正整数。具体的数值可以根据具体的字典顺序确定。
3.字符串的连接
concat()方法
System.out.println("Java".concat("SE"));
4.返回字节数组
byte[] bytes = "Linux".getBytes();
for (byte b :
bytes) {
System.out.print(b+" ");
}
该段代码的作用是将字符串"Linux"转换为字节数组,并遍历字节数组打印每个字节的值。
首先,通过调用字符串的getBytes()
方法将字符串转换为字节数组。该方法会将字符串按照默认的字符编码转换为字节数组。
然后,使用for-each
循环遍历字节数组。在循环中,通过变量b
依次获取字节数组中的每个字节。
最后,使用System.out.print()
方法打印每个字节的值,由于字节是整数类型,所以会直接打印字节的整数值。
所以,代码的输出结果是字节数组中每个字节的整数值,以空格分隔。例如,对于字符串"Linux",它的字节数组表示为: 76 105 110 117 120
5.查找给定字符所在的位置
indexOf()方法
System.out.println("Linux".indexOf(110));
System.out.println("Linux".indexOf("n"));
6.返回字符串长度
.length()方法
System.out.println("JavaSE".length());
7.拆分字符
split()方法
String[] str = "hello,java".split(",");
for(String str : s){
System.out.print(s+" ");
}
8.截取字符串
subString()方法
String substring = "asdfghjkkl".substring(3, 6);//[a(下标从0开始),b)
System.out.println(substring);
该段代码的作用是截取字符串"asdfghjkkl"的部分子串。
通过调用substring()
方法,可以截取字符串的一部分。该方法接受两个参数,第一个参数是起始位置的索引(包括),第二个参数是结束位置的索引(不包括)。索引从0开始,表示字符串中的字符位置。
在代码中,substring(3, 6)
表示从索引3(包括)开始到索引6(不包括)结束的子串。所以,截取的子串包括第4个字符(索引为3)到第6个字符(索引为5)。
最后,通过System.out.println()
方法打印截取得到的子串。
所以,代码的输出结果是"fgh"。
9.返回字符数组
toCharArray()方法
char[] chars = "huhshllaljodhuds".toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.print(chars[i]+" ");
}
该段代码的作用是将字符串"huhshllaljodhuds"转换为字符数组,并逐个打印字符。
通过调用toCharArray()
方法,可以将字符串转换为对应的字符数组。该方法将字符串中的每个字符以相同的顺序存储到一个字符数组中。
在代码中,"huhshllaljodhuds".toCharArray()
将字符串"huhshllaljodhuds"转换为一个字符数组。然后通过for
循环遍历字符数组,逐个打印数组中的字符。
最后,通过System.out.print()
方法打印每个字符,并在字符之间添加一个空格。
所以,代码的输出结果是"h u h s h l l a l j o d h u d s"。
10.去掉两端多余空格
trim()方法
String trim = " hh ".trim();
System.out.println(trim);
11.判断是否为空串
isEmpty()方法
System.out.println("".isEmpty());//返回值为True,是空串
System.out.println("dshgf".isEmpty());//返回值为False,不是空串