字符串——第一部分
equal方法、length()、substring、replace、charAt.......
1.API
2.字符串
字符串内容是不会更改的,他的对象在创建后不能发生更改
就算name被重新赋值,也是生成了一个新的字符串
3.string的构造方法代码实现和内存分析
3.1 创建string对象的两种方式
代码示例:四种常用方法
3.2 两种创建方式的内存图
Java内存图
1、直接输入:地址存储在串池中
2、new创建:地址存储在堆内存中
每new一次会开辟一个新的小空间,不存在复用的情况
4.字符串的比较
前者两个地址一样,存在复用,返回true;后者两个地址不一样,不存在复用,而是new创建出来的,一个存在堆中,一个存在串池中,地址不一样返回false。
4.1 如何比较内容?equal方法
代码案例:
补充键盘录入的字符串是如何建立的?直接输入 or new建立?
跟进scanner源码,得到
说明键盘录入的字符串是通过new建立的。
所以以下代码返回false:
所以,以后想比较字符串内容,就必须要用string的方法
5.练习
5.1 用户登录
5.2 遍历字符串,字符串名.charAt(索引)
所用方法:
字符串遍历:字符串名. length().fori,最后格式如下:
字符串名.charAt(索引),可以遍历字符
代码示例:
5.3 统计字符次数(5.2的应用)
所用方法:
char在参与运算时,会自动转为int类型进行ascii码表查询
ascii码表中:0对应48,9对应57,a-z:97-122,A-Z:65-90。
代码示例:
5.4 拼接字符串
构造方法:
1、排除数组为空;2、排除数组长度为0;3、拼接遍历结果
主程序:
5.5 字符串反转
所用方法:字符串名. length().forr(倒着遍历),格式如下:
自行更改成如下样式:
示例代码:
5.6 金额转换(较难)
思路:
构造方法:查表法,将大写的数字和单位存入数组
主程序:
1、键盘录入金额,并确定金额有效,题目要求7位
2、利用整数提取数字法,调用方法method1将录入的数字转换为大写的数字,形成:321——叁贰壹
3、若字符串不满7位,补齐0
4、加入单位,形成:零零零贰壹叁伍——零佰零拾零万贰仟壹佰叁拾伍元
5.7 手机号屏蔽
所用方法:substring,前者必须用一个变量接收,只有返回值才是截取的值,对原字符串没任何影响,后者只写一位数,表示从这位数开始,截取到末尾结束。
示例代码:
输出:131****4539
5.8 补充:字符转为数字,如何操作?
例子:
ascii码表中:0对应48,9对应57,所以转化为数字9,即为57-48,通用转换:字符ascii码-48;