接下来我们进入的学习章程,就是可以通过查阅帮助文档进行实际的应有
1.
char | charAt(int index) 返回指定索引的 |
代码示例:
public class StringTest04 {
public static void main(String[] args) {
//String中常用的方法
//“中国人”是一个字符串String对象,只要是对象就能点.调用
char c="中国人".charAt(1);
System.out.println(c);//国
}
}
2.
int | compareTo(String anotherString) 比较两个字符串的字典。 |
代码示例:
public class StringTest04 {
public static void main(String[] args) {
//int compareTo(String anotherString)
int result="abc".compareTo("abc");
System.out.println(result);//0(前后相等) 例子:10-10=0
int result2="abc".compareTo("abcd");
System.out.println(result2);//-1
int result3="abcd".compareTo("abce");
System.out.println(result3);//-1 8-9=-1
int result4="abce".compareTo("abcd");
System.out.println(result4);//1(前大后小) 9-8=1
//原理:是在字典数字中逐个进行比较,并不是累加起来再进行比较
System.out.println("xyz".compareTo("yxz"));//-1
}
}
3.
boolean | contains(CharSequence s) 如果并且只有当此字符串包含指定的字符序列的字符串值,则返回真值。 |
代码实例:
public class StringTest04 {
public static void main(String[] args) {
//判断前面的字符串中是否包含后面的子字符串
System.out.println("helloworld.java".contains(".java"));
System.out.println("www.baidu.com".contains("baidu"));
}
}
4.
boolean | startsWith(String prefix) 测试这个字符串是否以指定的前缀开始。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
Boolean b="fdafadfdsgdsgdcdcdcd".startsWith("f");
System.out.println(b);
Boolean b2="fdafadfdsgdsgdcdcdcd".startsWith("d");
System.out.println(b2);
}
}
5.
boolean | endsWith(String suffix) 测试如果这个字符串以指定的后缀结束。 |
代码实例:
public class StringTest04 {
public static void main(String[] args) {
//判断当前字符串是否是以某个字符串结尾
System.out.println("test.txt".endsWith("txt"));
System.out.println("test.txt".endsWith("aaa"));
}
}
老杜的教学的436集第3分钟的时候有讲解源码
思考一个问题:equals方法和compareTo这两个方法的功能一样,有什么区别呢?
答案:功能很类似,但是equals只能看出是否相等;但是compareTo不仅可以看出是否相等,还可 以 比较大小
6.
boolean | equals(Object anObject) 将此字符串与指定的对象比较。 |
实例演示:
public class StringTest04 {
public static void main(String[] args) {
System.out.println("abc".equals("abc"));
}
}
7.
boolean | equalsIgnoreCase(String anotherString) 比较这 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
System.out.println("Abc".equalsIgnoreCase("abc"));
}
}
8.
byte[] | getBytes() 这 |
实例演示:(疑问:abcdef是字符串,字符串转成字节数组后,为什么会从a变成97)
public class StringTest04 {
public static void main(String[] args) {
byte[] bytes= "abcdef".getBytes();
for (int i = 0; i <bytes.length; i++) {
System.out.println(bytes[i]);
}
}
}
9.
int | lastIndexOf(String str, int fromIndex) 返回此字符串的指定子字符串中最后出现在索引,搜索后从指定索引处开始。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
System.out.println("dakhfkajsfasfasfasfasfa".lastIndexOf("sfa"));
System.out.println("asdakjhfajks".lastIndexOf("s"));
}
}
10.
int | indexOf(String str) 返回指数在这个字符串指定的子字符串中第一个出现的下标。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
System.out.println("abcsdhkahfkashfjashf".indexOf("h"));
}
}
11.
boolean | isEmpty() 返回 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
System.out.println("a".isEmpty());
System.out.println("".isEmpty());
}
}
12.
int | length() 返回此字符串的长度。 |
注意:
判断数组长度和判断字符串长度不一样
原因:
判断数组长度是length属性 arr.length
判断字符串长度是length()方法 "aaa".length()
代码演示:
public class StringTest04 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5};
System.out.println(arr.length);
System.out.println("aaa".length());
}
}
13.
String | replace(CharSequence target, CharSequence replacement) 每个子串替换该字符串指定的文本替换序列靶序列匹配的文字。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
String s="http://www/baidu.com".replace("http" ,
"https");
System.out.println(s);
}
}
14.
String[] | split(String regex) 将此字符串在给定的 regular expression拆分。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
String[] s="2021/3/9".split("/");
for (int i = 0; i <s.length; i++) {
System.out.println(s[i]);
}
}
}
15.
String | substring(int beginIndex) 返回一个字符串,这个字符串的子串,截取字符串内容。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
String s="www.baidu.com".substring(4);
System.out.println(s);
}
}
16.
String | substring(int beginIndex, int endIndex) 返回一个字符串,这个字符串的子串。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
String s="www.baidu.com".substring(4,9);
System.out.println(s);
}
}
注意:beginIndex起始位置(包括此位置)
endIndex结束位置(不包括此位置)
17.
char[] | toCharArray() 将此字符串转换为一个新的字符数组。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
char[] chars="我是人".toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
}
}
}
18.
String | toLowerCase() 转小写 |
String | toUpperCase() 转大写 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
System.out.println("FHAJKSFHAzxcmnz".toLowerCase());
System.out.println("FHAJKSFHAzxcmnz".toUpperCase());
}
}
19.
String | trim() 返回一个字符串,它的值是字符串,任何前导和尾随空格删除,删除字符串前后留白。 |
代码演示:
public class StringTest04 {
public static void main(String[] args) {
String s=" fakjsfhakjsf ".trim();
String s2=" fakjsfhakjsf ";
String s3=" fakjsfh akjsf ";
System.out.println(s);
System.out.println(s2);
System.out.println(s3);
}
}
20.
这几个方法是静态方法,说明是经常使用的方法,直接用类名进行调用即可
作用:将 非字符串 转换成 “字符串”
代码演示:
public class StringTest04 {
public static void main(String[] args) {
String s=String.valueOf(100);
String s2=String.valueOf(3.14);
String s3=String.valueOf(true);
String s4=String.valueOf(new Customer2());
System.out.println(s);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
}
}
class Customer2{
@Override
public String toString() {
return "我是VIP顾客";
}
}
结果:
提问:以前一直强调System.out.println(引用.toStirng);
.toString可以省略不写,自动调用toString 方法
分析:(此段是伪代码)
System.out.println(100); System.out.println(3.14); System.out.println(true); Object obj=new Object(); System.out.println(obj)
顺着println按住ctrl点进去,进入println的源码
再按住ctrl点击valueOf的源码
发现,底层调用的确实的toString方法,因此我们可以直接省略不写toString方法在System.out.println();方法中可以省略
结论:
本质上System.out.println() 这个方法在输出任何数据的时候都是先转换成字符串,再输出