java tostring底层_Java基础之String类方法总结(小白必备知识!)

文章目录

1、charAt()方法

2、compareTo()方法

3、contains()方法

4、endsWith()和startsWith()方法

5、compareTo()和equals()区别

6、equalsIgnoreCase()方法

7、getBytes()方法

8、indexof()和lastIndexOf()方法

9、isEmpty()方法

10、replace()方法

11、split()方法

12、substring()方法

13、toCharArray()方法

14、toLowerCase()和toUpperCase()方法

15、trim()方法

16、Valueof()方法

16.1、System.out.println()底层调用

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

1、charAt()方法

224525fc9785030c6c1d6709f3eeaada.png

char c = "皮皮虾".charAt(1);

System.out.println(c);

91515ff896af6a07eca03d10ec091ce8.png

"皮皮虾"是一个对象。只要是对象就能使用点.

2、compareTo()方法

cb6d47503a131c1b5ca004c4ed5462fe.png

int result1 = "abc".compareTo("abc");

System.out.println(result1);

int result2 = "abc".compareTo("abd");

System.out.println(result2);

int result3 = "abd".compareTo("abc");

System.out.println(result3);

e055814b408e2b309fc8f630c22e212d.png

总结

如果参数字符串等于此字符串,则返回值 0;

如果此字符串小于字符串参数,则返回一个小于 0 的值;

如果此字符串大于字符串参数,则返回一个大于 0 的值。

返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。

System.out.println("abc".compareTo("cba"));

6e7a564fa3906da2392a935ebd57cd84.png

比较第一个字符串,a-c=-2,则返回-2

3、contains()方法

4f799205a457e6242ab084878c76bab3.png

简单来说就是判断前面的字符串是否包含后面的子字符串

System.out.println("HelloWorld!".contains("Wor"));

System.out.println("http://www.baidu.com".contains("https"));

7e5d057c7314da5de597f76bbb093d96.png

4、endsWith()和startsWith()方法

1e004b4c013b1d532564bb4ad972dc73.png

a91a62aedf915f7f5537721b16c65b6c.png

System.out.println("text.txt".endsWith("txt"));

System.out.println("text.txt".endsWith("java"));

System.out.println("text.txt".startsWith("text"));

System.out.println("text.txt".startsWith("test"));

0d2326e4795c53475fb9a7f50c1832c9.png

14efc8a5253dbd76137f024110bc61d5.png

System.out.println("text.txt".startsWith("text",0));

System.out.println("text.txt".startsWith("test",1));

08392eb865c6463ef1d953c9d5eaec27.png

5、compareTo()和equals()区别

fdc98bfa595840a5f816d28865a8c4c8.png

equals()考虑大小写

System.out.println("abc".equals("abc"));

System.out.println("abc".equals("aaa"));

14ab9d930559abaac5f5b1646217ef19.png

如果给定对象与字符串相等,则返回 true;否则返回 false。

compareTo()会返回二者的差值,即返回的是一个数字;而equals就简单一些,只返回true或者false。

最后,compareTo()和equals()都可以判断其他基本数据类型,比如说Integer,Java的源码中对这两者方法都做了一些重载,可以根据参数的类型去自动匹配相应的方法,他们的原理也非常简单,只是一些简单的减法或者(?:)这类判断。

6、equalsIgnoreCase()方法

4ff7e678f0b54ffb15486e824109d8c1.png

equalsIgnoreCase()忽略大小写

System.out.println("abc".equalsIgnoreCase("AbC"));

System.out.println("abc".equalsIgnoreCase("bbb"));

dc9b103343e2733dad0ad86a5c2c8ba2.png

7、getBytes()方法

f01f3b5c6d9d8713298f2bccec3bcc4a.png

byte[] bytes = "abcde".getBytes();

for (byte b:bytes){

System.out.println(b);

}

46fbf7936d50c96c5ab3d2903923e2ee.png

8、indexof()和lastIndexOf()方法

cff3f151c39269382eb92ea3dfee5be6.png

System.out.println("abcdefghygklmn".indexOf("a"));

System.out.println("abcdefghygklmn".indexOf("def"));

System.out.println("abcdefghygklmn".indexOf("l"));

8a8c21ef2b2d17f9baa470363929bd45.png

3b96121e9e23403abca72a2c6bb69048.png

System.out.println("abcdefgaabbcc".lastIndexOf("a"));

System.out.println("abcdefgaabbcc".lastIndexOf("c"));

c1e82efe972492cb91bb675d9f74fb94.png

9、isEmpty()方法

8fd5e24e4ed61b68836a1905beb3936b.png

System.out.println("".isEmpty());

System.out.println("aaa".isEmpty());

baebe8968b9ddf43bb24d2149c476afc.png

10、replace()方法

99c3942b68b3157e029c8b1c05f85125.png

String text = "aaabbbccc";

System.out.println(text.replace("a","d"));

String param = "name=皮皮虾&age=18&address=池塘";

System.out.println(param.replace("&",":"));

154c6c15a1dd2fbe677ceb4f97b9fccf.png

11、split()方法

07a9701df35840c3ecd8fd7eea21ea9e.png

也可以根据字符串来分割

String str = "2020-08-14";

String[] splits = str.split("-");

for (String s: splits) {

System.out.println(s);

}

System.out.println("--------------");

String param = "name=皮皮虾&age=18&address=池塘";

String[] split = param.split("&");

for (String s: split) {

System.out.println(s);

}

e38081e3b617a5021d62b8594199d34c.png

12、substring()方法

247d97cfd04762f3effafacc286babb4.png

496f674d1755b3bb14218ce68d56f767.png

beginIndex – 起始索引(包括), 索引从 0 开始。

endIndex – 结束索引(不包括)。

String text = "http://www.baidu.com";

System.out.println(text.substring(7));

System.out.println(text.substring(0,7));

1200191dee1a0f4b29016fcb05a23b2f.png

13、toCharArray()方法

283b659afc7a7feca52b733640de7797.png

char[] chars = "最爱皮皮虾".toCharArray();

for (char ch:chars){

System.out.println(ch);

}

9b589259bfa1892b0f369c0861e6f09f.png

14、toLowerCase()和toUpperCase()方法

d72dd11ec4ca328d16a1a5d6f0313dbd.png

59e86f1f54fc9617b53a495c5cbbc885.png

String text = "aaAA";

System.out.println(text.toLowerCase());

System.out.println(text.toUpperCase());

285cdcfd8339b6ecec809e40b62cf8e7.png

15、trim()方法

7d946eeea3b77135a2a6d99ae19bdc4d.png

去除字符串前后空白

String text = " hello world! ";

System.out.println(text.trim());

3b187b56453baf6ce24976cbe5cf12ef.png

16、Valueof()方法

1fd2b9e8b450dcc5263a688936c72c19.png

double d = 1111.11;

boolean b = false;

long l = 123456789;

char[] arr = {'w', 'o', 'r', 'l', 'd'};

System.out.println("返回值 : " + String.valueOf(d) );

System.out.println("返回值 : " + String.valueOf(b) );

System.out.println("返回值 : " + String.valueOf(l) );

System.out.println("返回值 : " + String.valueOf(arr) );

d9844572b4c030d638f1eaaf5ca3787f.png

feff0a7476ee0925aae88c41d39b60b2.png

Valueof()底层调用toString()方法

当参数是对象时

没有重写**toString()**方法时

public class Main {

public static void main(String[] args) {

String s = String.valueOf(new Person());

System.out.println(s);

}

}

class Person{

}

打印内存地址

cc8bbd635f43c7922d3f057dc080335a.png

重写了**toString()**方法

public class Main {

public static void main(String[] args) {

String s = String.valueOf(new Person());

System.out.println(s);

}

}

class Person{

@Override

public String toString() {

return "我是皮皮虾";

}

}

打印toString()返回的数据

9e843b7c36ecdfd7d98d839c2eb11833.png

16.1、System.out.println()底层调用

Object o = new Object();

System.out.println(o);

调用valueOf()

1117e176ab51488c2790c4f10c5b8b2e.png

调用toString()

34c836adea5d0e5befba955cc6453d75.png

实际上System.out.println()这个方法在输出任何数据的时候都是先转换成字符串,再输出。

觉得博主写的不错的读者大大们,可以点赞关注和收藏哦,谢谢各位!

博主更多博文

5adab9a9c10dbb013f61cd19b6306ec6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值