day13



  需求:校验一个QQ号码
  定义一个规则:1)由5到10为组成的数字
   2)不能以0开头
  分析:
  1)键盘录入一个QQ号码,使用字符串接收
  2)定义一个校验QQ的功能

  3)在main()中调用返回boolean类型

day13

2

day13



 使用正则表达式校验手机号码:
  规则:
  手机号码:
  13689257284
  13688886666
  13892866555
  18992844422
  13257222222
  ...
 
 1)创建键盘录入对象,录入手机号码
 2)定义正则规则:
 *3)String类的特有功能
 * public boolean matches(String regex)告知此字符串是否匹配给定的正则表达式。 
 *4)输出

day13






 * 需求:校验邮箱:
 * QQ邮箱:
 * [email protected]
 * [email protected]
 * [email protected]
 * [email protected]
 * [email protected]
 * [email protected]
 * 分析:1)键盘录入邮箱
 * 2)定义正则规则
 * 3)使用String中的特有功能校验
 * 4)输出即可


day13




* String的分割功能:
 *
 * public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串
 * 返回值类型是一个字符串数组类型
 * 
 * 应用场景:
 *  QQ,搜索好友,相亲网:世纪佳缘...
 * 女  "18-24"
 * String ages = "18-24" ;


day13


String类中的替换功能:和正则表达式有关系
 * public String replaceAll(String regex,String replacement)
 * 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。


day13




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)输出字符串


day13





集合的由来:
 * 我们学习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()

day13




集合的高级功能:
 * boolean addAll(Collection c):添加一个集合中的所有元素
 * boolean removeAll(Collection c):删除一个集合中的所有元素?思考:删除所有算是删除还是删除一个算是删除?
 * boolean containsAll(Collection c):判断一个集合中是否另一个集合;思考:是包含一个元素算是包含还是包含所有
 *  boolean retainAll(Collection c):思考:A集合给B集合做交集,交集的元素去哪里?返回值boolean表达什么意思?

day13




Object[] toArray():将集合转换成数组
 * 
 * 需求:给集合中添加String类型的元素,遍历集合

day13




合的专有遍历方式:使用集合自己本身迭代功能遍历集合中的元素
 * Iterator iterator():迭代器
 * Iterator:迭代器:接口
 * 成员方法:Object next()返回迭代的下一个元素:获取功能
 *  boolean hasNext():判断一个集合中是否有下一个可以迭代的元素:判断功能
 * 
 * 需求:使用集合存储字符串类型的元素并遍历

day13