接下来我们进入的学习章程,就是可以通过查阅帮助文档进行实际的应有
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=0int result2="abc".compareTo("abcd");System.out.println(result2);//-1int result3="abcd".compareTo("abce");System.out.println(result3);//-1 8-9=-1int 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{@Overridepublic 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() 这个方法在输出任何数据的时候都是先转换成字符串,再输出