接收字符串的键盘录入:
第一种:next(); 遇到空格,制表符,回车就会停止接收后面的数据;
第二种:nextLine(); 可以接收空格,制表符,遇到回车才停止接收数据;
![](https://i-blog.csdnimg.cn/blog_migrate/23fe5078cf40f41047f0b7139a5bc4e4.png)
因为缓存区里还有一个回车被nextLine接收了;
在nextLine操作之前加上一个sc.nextLine就可以清空缓冲区;
String操作:
将字符数组转为字符串:
![](https://i-blog.csdnimg.cn/blog_migrate/ed4ee46b9fef3cefe92154ab2f4ead5b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ca5a9622014d94c4f65d15a2264bd56f.png)
将字节数组转为字符串:
![](https://i-blog.csdnimg.cn/blog_migrate/dfd4e9a91f57b24a80f8ef7a97334749.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e22c30a85b76976a39c68f334eec9d1a.png)
注意,整形数组是不能通过上面的操作转换;
![](https://i-blog.csdnimg.cn/blog_migrate/c48248b5a96c8a64f03b87f6cd02d55e.png)
String的内存原理:
![](https://i-blog.csdnimg.cn/blog_migrate/3eaf66bb24d547041c8c239335411b62.png)
只有直接赋值的字符串才存储在串池,new从来的都是存储在堆内存内;
![](https://i-blog.csdnimg.cn/blog_migrate/0bea24cac77495b437c99d4294ffe61c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9735d11c8f940299d07d95205929d145.png)
直接赋值的字符串会共用串池中的同一个地址;
==号比较的内容:
![](https://i-blog.csdnimg.cn/blog_migrate/1545222c787c4d35c9c86c96913cec0f.png)
==号比较的是栈中存储的值,而引用数据类型在栈中存的值为地址;
遍历字符串的方法:
![](https://i-blog.csdnimg.cn/blog_migrate/2bec51fccddbbce797a2c6f4db5d89e9.png)
截取部分字符串的方法:
![](https://i-blog.csdnimg.cn/blog_migrate/8c0dc8d8a1c6beee329b4b034d27f3d0.png)
替换字符串内容的方法:
![](https://i-blog.csdnimg.cn/blog_migrate/2d6494e017f43a262dbcceafbc84719c.png)
注意:字符串本身是不能更改的!!!