day13
需求:校验一个QQ号码
定义一个规则:1)由5到10为组成的数字
2)不能以0开头
分析:
1)键盘录入一个QQ号码,使用字符串接收
2)定义一个校验QQ的功能
3)在main()中调用返回boolean类型
2
使用正则表达式校验手机号码:
规则:
手机号码:
13689257284
13688886666
13892866555
18992844422
13257222222
...
1)创建键盘录入对象,录入手机号码
2)定义正则规则:
*3)String类的特有功能
* public boolean matches(String regex)告知此字符串是否匹配给定的正则表达式。
*4)输出
* 需求:校验邮箱:
* QQ邮箱:
* [email protected]
* [email protected]
* [email protected]
* [email protected]
* [email protected]
* [email protected]
* 分析:1)键盘录入邮箱
* 2)定义正则规则
* 3)使用String中的特有功能校验
* 4)输出即可
* String的分割功能:
*
* public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串
* 返回值类型是一个字符串数组类型
*
* 应用场景:
* QQ,搜索好友,相亲网:世纪佳缘...
* 女 "18-24"
* String ages = "18-24" ;
String类中的替换功能:和正则表达式有关系
* public String replaceAll(String regex,String replacement)
* 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
test
我有如下一个字符串:"91 27 46 38 50"
请写代码实现最终输出结果是:"27 38 46 50 91"
分析:
1)定义这个字符串
2)使用分割功能分割成一个字符串数组
3)如何得到一个int类型数组:动态初始化定义int数组 int[] arr = new int[字符串数数组.length] ;
4)遍历int数组
获取每一个元素:arr[x] = Integer.parseInt(字符串数组对象[x])
5)排序:Arrays数组工具类型快速排序:sort(arr)
6)再去遍历int类型数组获取每一个元素,用字符串缓冲区来进行拼接
7)输出字符串
集合的由来:
* 我们学习java的语言,是一种面向对象语言,面向对象语言对事物的描述是通过对象体现出来的,那么存储很多个学生,就需要使用容器变量进行存储
* 目前:学习过哪些容器变量呢?
* 数组,StringBuffer/StringBuilder,对于数组来说,数组的长度是固定的,不符合实际需求(长度不可变);对于StringBuffer来说始终在内存中返回
* 的是字符串类型,也不满足元素类型变化的要求;所以,Java就提供了一个技术:集合!
*
* 面试题:
* 集合和数组的区别?
* 1)长度的区别:
* 数组:长度是固定的;
* 集合:长度是可变的
* 2)存储数据类型的区别:
* 数组:可以存储引用类型,可以存储基本数据类型
* 集合:只能存储引用类型
* 3)存储元素的区别
* 数组:在同一个数组中,只能存储同一种数据类型的元素;举例 数组:杯子:只能装水
* 集合:可以 存储多种数据类型的元素;
举例:集合:杯子:装水,其他饮料...
*
* 集合是可以存储多种类型的元素,但是,需求如果变化,针对集合来说,Java提供了很多集合类,每一种集合类的数据结构不一样,所以,将他们之间的共性内容抽取出来,就行了
* 一个集合的继承体系图!
*
* 数据结构:存储数据的方式
*
* Collection: 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。
* 一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现
*
* Collection的一些功能
* 添加功能:
* boolean add(Object e):给集合中添加指定的元素
* boolean addAll(Collection c):添加一个集合中的所有元素
* 删除功能:
* void clear():删除一个集合中的所有元素,暴力删除,(不建议使用)
* boolean remove(Object o):删除一个集合中的指定元素
* boolean removeAll(Collection c):删除一个集合中的所有元素?思考:删除所有算是删除还是删除一个算是删除?
* 判断功能:
* boolean contains(Object o):判断一个集合中是否包含指定的单个元素
* boolean containsAll(Collection c):判断一个集合中是否另一个集合;思考:是包含一个元素算是包含还是包含所有.
* boolean isEmpty():判断集合是否为空,如果为空,则返回true
*
* 交集功能:
* boolean retainAll(Collection c):思考:A集合给B集合做交集,交集的元素去哪里?返回值boolean表达什么意思?
* 获取功能;
* int size():获取集合中的元素数
* Iterator<E> iterator():迭代器
* 转换功能:
* Object[] toArray():将集合转换成数组
*
* 面试题:
* 数组中有没有length(),String类中有没有length(),集合中有没有length()?
* 数组:length属性
* String:length()
* 集合中:size()
集合的高级功能:
* boolean addAll(Collection c):添加一个集合中的所有元素
* boolean removeAll(Collection c):删除一个集合中的所有元素?思考:删除所有算是删除还是删除一个算是删除?
* boolean containsAll(Collection c):判断一个集合中是否另一个集合;思考:是包含一个元素算是包含还是包含所有
* boolean retainAll(Collection c):思考:A集合给B集合做交集,交集的元素去哪里?返回值boolean表达什么意思?
Object[] toArray():将集合转换成数组
*
* 需求:给集合中添加String类型的元素,遍历集合
合的专有遍历方式:使用集合自己本身迭代功能遍历集合中的元素
* Iterator iterator():迭代器
* Iterator:迭代器:接口
* 成员方法:Object next()返回迭代的下一个元素:获取功能
* boolean hasNext():判断一个集合中是否有下一个可以迭代的元素:判断功能
*
* 需求:使用集合存储字符串类型的元素并遍历