




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京传智播客教育Java预热班讲义讲师:焦宁波北京传智播客教育Tip1:静态导入JDK1.5增加的静态导入语法用于导入类的某个静态属性或方法。使用静态导入可以简化程序对类静态属性和方法的调用。语法:importstatic
包名.类名.静态属性|静态方法|*例如:importstaticjava.lang.System.outimportstaticjava.lang.Math.*案例求圆的面积、任意半径圆的面积北京传智播客教育Tip2:增强for循环增强for循环for(:)细节:循环遍历时无法改变容器中的值北京传智播客教育Tip3:可变参数测试JDK中具有可变参数的类Arrays.asList()方法。分别传多个参、传数组,传数组又传参的情况。publicstatic<T>List<T>asList(T...a)注意:传入基本数据类型数组的问题。从JDK5开始,Java允许为方法定义长度可变的参数。语法:
publicvoidfoo(int…args){ }注意事项:调用可变参数的方法时,编译器将自动创建一个数组保存传递给方法的可变参数,因此,程序员可以在方法体中以数组的形式访问可变参数。可变参数只能处于参数列表的最后,所以一个方法最多只能有一个长度可变的参数。北京传智播客教育Tip4:包装类(WrapperClass)概念为了使得java的基本类型有更多的功能,java为其所有的基本类型提供了包装类来封装常见的功能。如:最大值、数值转换等。将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据所属的包:java.lang.*常见应用获取最大最小值MAX_VALUE/MIN_VALUE基本数据类型与字符串之间的转换整数字符串(3+””,Integer.toString(34))字符串整数(Integer.parseInt(age))//必须是数字格式publicstaticintparseInt(Strings,intradix)//参数2是基数数值之间的进制转换toBinaryString(inti)/toHexString(inti)/toOctalString(inti)北京传智播客教育Extends:包装类的新特性包装类ByteShortIntegerLongBooleanCharacterFloatDouble基本类型byteshortintlongbooleancharfloatdouble装箱拆箱Auto思考:
Stringstr=“itcast”;是否是自动装箱?北京传智播客教育练习Integera=127;Integerb=127;System.out.println(a==b);Integera=128;Integerb=128;System.out.println(a==b);缓存:-127~128北京传智播客教育Tip5:枚举类为什么需要枚举?一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。举例交通灯(红、黄、绿)性别(男、女)星期(星期一、二、三…..)
分数等级(A、B、C、D、E)JDK5新增的enum关键字用于定义一个枚举类。北京传智播客教育Tip5:枚举类枚举的实现使用enum定义枚举类在枚举类中定义枚举值(大写)枚举类具有如下特性:枚举类也是一种特殊形式的Java类。枚举类中声明的每一个枚举值代表枚举类的一个实例对象。与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。枚举类也可以实现接口(序列化)、或继承抽象类。JDK5中扩展了swith语句,它除了可以接收int,byte,char,short外,还可以接收一个枚举类型(enum)。若枚举类只有一个枚举值,则可以当作单态设计模式使用。练习:请编写一个关于星期几的枚举WeekDay,要求:枚举值:Mon,Tue,Wed,Thu,Fri,Sat,Sun该枚举要有一个方法,调用该方法返回中文格式的星期。北京传智播客教育Tip5:枚举类Java中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。常用方法:name()返回枚举常量的nameordinal()返回枚举常量的声明索引valueof(ClassenumClass,Stringname)返回指定名称的枚举类values()此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便。注意:JDKAPI文档中并不是包含了所有类、所有类的方法、字段,没有被API收录的类、方法、字段是SUN公司内部使用的,开发人员如果知道,也可以使用。北京传智播客教育Eclipse的使用工作空间(workspace)、工程(project)在eclipse下Java程序的编写和运行java运行环境的配置快捷键的配置,常用快捷键:内容提示:Alt+/快速修复:Ctrl+1导包:Ctrl+shift+O格式化代码块:ctrl+shift+F删除一行:Ctrl+D添加注释:Ctrl+Shift+/Ctrl+/除去注释:Ctrl+Shift+\Ctrl+/类的创建(方法、构造函数、封装)类的重构之方法的抽取项目的使用(导入、导出、打包和生成软件说明书)程序的调试和运行(写数组反序输出程序演示)F5(跳入)F6(跳过)F7(跳出)案例北京传智播客教育Tip6:RegularExpressions概念在计算机科学中,是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。支持许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。练习编写一个功能函数验证一串数字是否是合法的身份证号码?注意虽然很多语言都支持正则表达式语言,但是具体的写法有细微的不同。北京传智播客教育Tip6:RegularExpressions字符串处理利器字符串匹配字符串查找字符串替换举例用户名是否正确搜集页面email地址搜集页面超链接Java类java.lang.Stringjava.util.regex.Patternjava.util.regex.Matcher231jsdf用户名XItcast:上传了一个java工具回复邮箱地址可见It:cast:100个人北京传智播客教育java.lang.StringStringmatches(Stringregex)split(Stringregex)replaceAll(Stringregex,Stringreplacement)replaceFirst(Stringregex,Stringreplacement)程序体验 publicstaticvoidmain(String[]args){System.out.println("a".matches(".")); System.out.println("abc".matches("...")); } publicstaticvoidmain(String[]args){ System.out.println("a888888a".replaceAll(“8","*")); System.out.println("a294392a".replaceAll("\\d","*")); }北京传智播客教育java.util.regex.Pattern|Matcher概念该类就是对字符串的匹配模式的抽象描述。特点没有构造函数使用静态方法compile(Stringregex)返回对象总结Pattern代表匹配模式字符串Matcher代表模式字符串与目标字符串匹配的结果程序体验 publicstaticvoidmain(String[]args){ Patternp=pile("[a-z]{3}"); Matcherm=p.matcher("abc"); System.out.println(m.matches()); }北京传智播客教育Tip6.1:数量匹配元字符程序体验 publicstaticvoidmain(String[]args){ p("a".matches(".")); p("aa".matches("aa")); p("aaa".matches("a*")); p("aaaa".matches("a+")); p("".matches("a?")); p("aaaaa".matches("a{5}")); p("aaaaaa".matches("a{3,8}")); }北京传智播客教育Tip6.2:范围匹配范围组合程序体验 publicstaticvoidmain(String[]args){ p("a".matches("[abc]")); p("a".matches(“^abc")); p("A".matches("[a-zA-Z]")); p("1".matches("[a-z[1-3]]")); p("D".matches("[A-Z&&[DEF]]")); }北京传智播客教育Tip6.3:简写匹配简写程序体验 publicstaticvoidmain(String[]args){ p("\r\n\t".matches("\\s{4}")); p("".matches("\\S")); p("a_0".matches("\\w{3}")); p("abc23482'&".matches("[a-z]{1,3}\\d+['%&]*")); p("\\".matches("[\\\\]")); }北京传智播客教育Tip6.4:Linux标准简写程序体验 publicstaticvoidmain(String[]args){p("abc".matches("\\p{Lower}{1,3}")); }北京传智播客教育Tip6.5:边界限定边界符程序体验 publicstaticvoidmain(String[]args){p("a1".matches("^\\d")); p("aa".matches("^[a]{2}")); p("demo.java".matches("[a-z]+[.][a-z]*java$")); p("hello.class".matches("^h[el]{1,3}o[.]class$")); p("\n".matches("^[\\s]*$")); }北京传智播客教育Tip6.6:正则组引题:使用重叠词切割字符串组:当正则表达式中某一部分需要用到前面部分的结果的时候可以将前面的部分定义为组,后面通过组的编号可以直接访问前面的结果。组的实现:使用()代表一个组正则中的组都有编号,从1开始,需要访问的时候可以使用\n访问练习str=“abcddefgghijkklmn”str.split(“(.)\\1”)北京传智播客教育String练习matches()split()空格切割“abc”“+”.切割“a.b.c.d”“\\.”\切割“d:\\a.txt”“\\\\”StringreplaceAll(Stringregex,Stringreplacement)“tel12344556add4646767”所有数字替换为#\\d{4,}“aabbbccccd”将所有叠词替换为@(.)\\1替换两次将以上的叠词替换为叠词的一个字母(.)\\1$1北京传智播客教育练习银行卡密码校验(6位数字)”\\d{6}”网站用户名注册“^[a-zA-Z]\\w*[A-Za-z]{2,3}$”带区号的固定电话号码”^0\\d{2,3}-\\d{7,8}$”从网页中抽取用户的邮箱地址”^\\w+@[\\w[.-]]+[.]\\w{2,4}$”北京传智播客教育java.util.regex.Pattern|Matcher获取匹配字符find()group()练习“Youwanttogotohighschool?Well,I‘dliketo,verymuch,ifyouthinkIcould.”;找到由两个字符组成的单词?北京传智播客教育练习求出一个java文件中空行的个数,并输出行号求出一个文件中所有的邮件地址。\\w+@\\w+(\\.\\w+)+面试题目:获取一个页面上的所有的URL连接地址?北京传智播客教育备注:常用的正则表达式01。^\d+$
//匹配非负整数(正整数+0)02。^[0-9]*[1-9][0-9]*$
//匹配正整数03。^((-\d+)|(0+))$
//匹配非正整数(负整数+0)04。^-[0-9]*[1-9][0-9]*$
//匹配负整数05。^-?\d+$
//匹配整数06。^\d+(\.\d+)?$
//匹配非负浮点数(正浮点数+0)07。^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
//匹配正浮点数08。^((-\d+(\.\d+)?)|(0+(\.0+)?))$
//匹配非正浮点数(负浮点数+0)09。^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
//匹配负浮点数10。^(-?\d+)(\.\d+)?$
//匹配浮点数11。^[A-Za-z]+$
//匹配由26个英文字母组成的字符串12。^[A-Z]+$
//匹配由26个英文字母的大写组成的字符串13。^[a-z]+$
//匹配由26个英文字母的小写组成的字符串14。^[A-Za-z0-9]+$
//匹配由数字和26个英文字母组成的字符串15。^\w+$
//匹配由数字、26个英文字母或者下划线组成的字符串16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
//匹配email地址17。^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
//匹配url18。匹配中文字符的正则表达式:[\u4e00-\u9fa5]19。匹配双字节字符(包括汉字在内):[^\x00-\xff]20。应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
Stotype.len=function(){returnthis.replace([^\x00-\xff]/g,"aa").length;}21。匹配空行的正则表达式:\n[\s|]*\r22。匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*)\/>/23。匹配首尾空格的正则表达式:(^\s*)|(\s*$)北京传智播客教育常用的正则表达式01、^\S+[a-zA-Z]$不能为空不能有空格只能是英文字母02、\S{6,}不能为空六位以上03、^\d+$不能有空格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床护理防跌倒宣教
- 安徽省黄山市祁门县2023-2024学年高三下学期高考第一模拟考试(一模)语文考试题目及答案
- 安徽省蚌埠市禹会区2024-2025学年高一下学期第二次月考地理试题含参考答案
- 2025 年小升初阳江市初一新生分班考试语文试卷(带答案解析)-(部编版)
- 2025 年小升初临汾市初一新生分班考试数学试卷(带答案解析)-(北师大版)
- 统编版五年级语文上册第四单元拔尖测评卷(含答案)
- 北师大版五年级上册数学第七单元 可能性 检测卷(无答案)
- 景观雕塑服务合同范本
- 维修合同范本简单版
- 租门市押金合同范本
- 2020公路工程质量检验评定标准第二册机电工程
- 小儿腹泻护理查房
- GB/T 42653-2023玻璃高温黏度试验方法
- 代持股权挂名法人协议书
- 2017年人教版英语五年级上册说教材
- 普通化学(第五版)浙江大学普通化学教研组P课件
- 医疗保障法律法规行政处罚司法审视及建议PPT学习培训课件
- GB/T 9999.2-2018中国标准连续出版物号第2部分:ISSN
- GB/T 6543-2008运输包装用单瓦楞纸箱和双瓦楞纸箱
- GB 19522-2004车辆驾驶人员血液、呼气酒精含量阈值与检验
- GB 10238-1998油井水泥
评论
0/150
提交评论