Jv课件 补充1_第1页
Jv课件 补充1_第2页
Jv课件 补充1_第3页
Jv课件 补充1_第4页
Jv课件 补充1_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

补充 2014 3 10 2 4 12基本类型的类包装 Java的基本数据类型包括 byte int short long float double char Java提供了基本数据类型相关的类 实现了对基本数据类型的封装 这些类在java lang包中 2014 3 10 3 4 12基本类型的类包装 对于包装类说 这些类的用途主要包含两种 1 作为和基本数据类型对应的类类型存在 方便涉及到对象的操作 2 包含每种基本数据类型的相关属性如最大值 最小值等 以及相关的操作方法 通过包装类可以获取本类型的最大和最小值 例如 下面语句会打印出整型的最大和最小值 System out println Integer MAX VALUE 2147483647System out println Integer MIN VALUE 2147483648 2014 3 10 4 4 12基本类型的类包装 装箱和拆箱 1 所谓装箱 就是把基本类型用它们相应的引用类型包起来 使它们具有对象的特质 例如 把int类型包装成Integer类的对象 2 所谓拆箱 就是把引用类型的对象重新简化成基本类型的数值型数据 例如 把Integer类的对象重新简化成int类型数据 装箱拆箱可自动完成 intx 1 Integery x 自动装箱intz y 自动拆箱 int和Integer与String的转换两个常用的方法 parseInt和valueOf 它们都是静态方法 inti Integer parseInt 123 把String转换为intStrings1 Integer toString i 把int转换为StringIntegerb Integer valueOf 123 把String转换为IntegerStrings2 b toString 把Integer转换为String 4 12基本类型的类包装 2012 8 1 6 1 4 1String类 Java语言中 把字符串作为对象来处理 Java类库中的类String和StringBuilder分别用于处理不变字符串和可变字符串 它们在java lang包中 由于此包中的类被默认引入 因此程序可以直接使用 String类声明为final类 因此用户不能扩展String类 即其不能有子类 可以使用String类来创建一个字符串变量 字符串变量是对象 2012 8 1 7 8 1 1构造字符串对象 1 常量对象 字符串常量对象是用双引号括起的字符序列 例如 你好 12 97 boy 等 2 字符串对象可以使用String类声明字符串对象 如 Strings 由于字符串是对象 就必须要创建字符串对象 s newString howareyou 也可以用一个已创建的字符串创建另一个字符串Stringtom newString s String类较常用构造方法 String s String chara String chara intstartIndex intcount 3 引用字符串常量对象Strings1 s2 s1 howareyou 字符串常量的引用赋给字符串变量s2 howareyou 2012 8 1 8 String类的常用方法 publicclassExample8 1 publicstaticvoidmain Stringargs Strings1 s2 s1 newString 天道酬勤 s2 newString 天道酬勤 System out println s1 equals s2 输出结果是 trueSystem out println s1 s2 输出结果是 false 因为s1 s2是对象 里面存放的是引用Strings3 s4 s3 勇者无敌 s4 勇者无敌 System out println s3 equals s4 输出结果是 trueSystem out println s3 s4 输出结果是 trueSystem out println s3 length 输出结果是 4 表3 1String类中一些比较常用的方法 2012 8 1 10 String类的常用方法 1 publicintlength 获取一个字符串的长度Stringchina 1945年抗战胜利 intn1 china length n1 92 publicintindexOf Strings 从当前字符串的头开始检索字符串s 并返回首次出现s的位置 从0开始 其相关方法 indexOf Strings intstartpoint lastIndexOf Strings 例如 Stringtom Iamagoodcat tom indexOf a 值是2tom indexOf good 2 值是7tom indexOf a 7 值是133 publicStringsubstring intstartpoint 获得一个当前字符串的子串其相关方法 substring intstart intend Stringtom 我喜欢篮球 Strings tom substring 1 3 那么s是 喜欢 注意不是 喜欢蓝 4 publicStringtrim 得到一个s去掉前后空格后的字符串对象 2012 8 1 11 String类的常用方法 publicclassExample8 3 publicstaticvoidmain Stringargs Stringpath c book javabook JavaProgrammer doc 使用转义字符来表示 intindex path indexOf index 2 System out println index Stringsub path substring index System out println sub 输出结果是 book javabook Javarogrammer docindex path lastIndexOf System out println lastindexofis index index 16 sub path substring index 1 System out println sub 输出结果是 JavaProgrammer docSystem out println sub contains Programmer 输出结果是 true 2012 8 1 12 8 1 5字符串与字符 字节数组 1 字符串与字符数组 String类的构造方法 String char String char intoffset intlength 分别用字符数组中的全部字符和部分字符创建字符串对象 String类提供了将字符串存放到数组中的方法 publicvoidgetChars intstart intend charc intoffset 将字符串中的全部字符存放在一个字符数组中的方法 publicchar toCharArray 2012 8 1 13 字符串与字符 字节数组 publicclassExample9 6 publicstaticvoidmain Stringargs char a b c Strings 2009年10月1日是国庆60周年 a newchar 2 s getChars 11 13 a 0 输出 国庆 字符串放到字符数组里System out println a c 十一长假期间 学校都放假了 toCharArray 字符串全部放到字符数组里for charch c System out print ch 输出 十一长假期间 学校都放假了 2012 8 1 14 字符串与字符 字节数组 2 字符串与字节数组 String byte 用指定的字节数组构造一个字符串对象 String byte intoffset intlength 用指定的字节数组的一部分 即从数组起始位置offset开始取length个字节构造一个字符串对象 publicbyte getBytes 方法使用平台默认的字符编码 将当前字符串转化为一个字节数组 publicbyte getBytes StringcharsetName 使用参数指定字符编码 将当前字符串转化为一个字节数组 2012 8 1 15 8 1 5字符串与字符 字节数组 publicclassExample9 7 publicstaticvoidmain Stringargs byted Java你好 getBytes System out println 数组d的长度是 d length 数组的长度是8Strings newString d 6 2 System out println s 输出 好s newString d 0 6 System out println s 输出 Java你 数组d的长度是 8好Java你 16 1 4 2StringBuilder类 StringBuilder类对象是可以修改的字符串 它除了有长度方法length 外 还有容量方法capacity 创建StringBuilder类对象格式如下 StringBuilderstrb newStringBuilder 建立空的Stringbuilder对象 初始容量是16字符单元可以带整型参数 即指定缓冲区大小 如 StringBuilderstrb newStringBuilder intinitCapacity 实例3 22 在当前字符串中插入字符串publicclassInsertDemo publicstaticvoidmain String args StringBuildersbu newStringBuilder you sbu insert 0 how 在字符串最前面插入 how System out println sbu 输出结果sbu insert 4 are 在字符串下标4位置插入 are System out println sbu 输出结果 图3 31运行结果 1 4 2StringBuilder类 实例3 23 字符串反转publicclassReverseDemo publicstaticvoidmain String args StringBuildersbu newStringBuilder howareyou sbu reverse 字符串反转System out println sbu 输出结果 图3 32运行结果 1 4 2StringBuilder类 1 6正则表达式 不使用正则表达式 方法返回true表示是手机号码publicbooleanverifyPhone1 StringphoneNumber if phoneNumber length 11 如果不是11位returnfalse charc phoneNumber toCharArray 字符串转字符数组for inti 0 i 9 如果不是数字returnfalse returntrue 使用正则表达式 方法返回true表示是手机号码publicbooleanverifyPhone2 StringphoneNumber if Ppile d 11 matcher phoneNumber matches returntrue elsereturnfalse 1 6正则表达式 1 6 1正则表达式基础 一个正则表达式就是由普通的字符 例如字符a到z 以及特殊字符 元字符 组成的文字模式 它用以描述在查找文字主体时待匹配的一个或多个字符串 正则表达式作为一个模板 将某个字符模式与所搜索的字符串进行匹配 表6 4字符模式例子 1 6 1正则表达式语法 表1 13预定义字符 6 5 2正则表达式语法 表6 6量词表示 例如 qp 或qp 0 1 匹配以q开头且后面不包含p或包含一个p的字符串 如 q qp qpeqp 或qp 0 匹配以q开头且后面可包含p或包含多个p的字符串 如 q qp qppqp 或qp 1 匹配以q开头且q后面至少包含一个或多个p的字符串 如 qp qppjk 2 匹配j后面含有2个k的字符串jk 2 匹配j后面含有2个或2个以上个k的字符串jk 2 5 匹配j后面含有2至5个k的字符串jk lmn 匹配jk后面没有或含有1个lmn的字符串jk lmn 1 5 匹配jk后面含有1 5个lmn的字符串 1 6 2正则表达式语法 表6 7边界匹配字符 例如 Hello开头要以Hello开始 如 HelloWorldmeetyou 结尾要以meetyou结尾 如 nicetomeetyou BTW 只有BTW符合要求 a zA Z 匹配以大小写开头的字符串 3 匹配以三个任意字符串结尾 1 6 2正则表达式语法 2012 8 1 26 例如 1 匹配所有123 12 1234形式的社会安全号码2 匹配典型的美国汽车牌照号码 如8836KV3 匹配所有单词 但 X 开头的除外4 匹配IP地址 1 6 2正则表达式语法 1 6 6 7Pattern类和Matcher类 从Java1 4起 Java核心API就引入了java util regex程序包 它是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包 它可以用于很多类型的文本处理 如匹配 搜索 提取和分析结构化内容 它包括两个类 Pattern和Matcher java util regex Matcher匹配类 用模式匹配一个字符串所表达的抽象结果 java util regex Pattern模式类 用来表示一个编译过的正则表达式 表6 8Pattern类的常用方法 1 6 6 7Pattern类和Matcher类 表6 9Matcher类的常用方法 1 6 6 7Pattern类和Matcher类 2012 8 1 30 1 6 6Pattern类 importjava util regex Pattern publicclassMysplit 23 privatestaticfinalStringREGEX d privatestaticfinalStringINPUT abc5defg64hijk72lmnop19qrst2000uv publicstaticvoidmain String args Patternp Ppile REGEX pile 正则表达式串 pattern设置模式串String letter p split INPUT pattern split 字串 以设定模式划分字串 将非模式部分存为字串数组for Strings letter if s length 0 System out println s abcdefghijklmnopqrstuv 2012 8 1 31 1 6 7Matcher类 importjava util regex publicclassMymatch 24 privatestaticfinalStringREGEX abc privatestaticfinalStringINPUT abcdaabcabbbcabccabcaabcabbc publicstaticvoidmain String args Patternp Ppile REGEX Matcherm p matcher INPUT 得到Matcher匹配器对象inti 0 while m find i System out print Match i System out print m start 在字串中找到匹配串的起始位置 首字符位置为1System out println m end end 找到匹配串的结束位置 Match1 0 3Match2 5 8Match3 13 16Match4 17 20Match5 21 24 补充 String类对正则表达式的支持 表6 10String类支持正则表达式的方法 1 split方法的使用Stringstr 姓名 年龄性别 职位 String dataArr str split s 按逗号或者空格或者分号分割字符串 s表示空白字符for StringstrTmp dataArr System out print strTmp 输出结果 姓名年龄性别职位 补充 String类对正则表达式的支持 姓名年龄性别职位 2 replaceAll方法的使用Stringstr 10元1000人民币10000元100000RMB str str replaceAll 元 人民币 RMB System out println str 输出结果 10 1000 10000 100000 补充 String类对正则表达式的支持 3 matches方法的使用StringlikeType 23 Stringpattern a zA Z0 9 likeType 1 a zA Z0 9 StringsourceStr abdjaslfj23fdhaksf System out println sourceStr matches pattern 输出结果 true 补充 String类对正则表达式的支持 2012 8 1 36 结束 1 在字符串中查找匹配的子串 查找以Java开头 任意结尾的字符串Patternpattern Ppile Java Matchermatcher pattern matcher Java是传说 booleanb matcher matches 当条件满足时 将返回true 否则返回falseSystem out println b 输出结果 true 补充 String类对正则表达式的支持 6 5 3Pattern类和Matcher类 2 在字符串中查找并替换匹配的子串 文字替换 全部 Patternpattern Ppile 正则表达式 Matchermatcher pattern matcher 正则表达式Hello 正则表达式World 替换符合正则的数据 并输出替换后的结果System out println matcher replaceAll Java 输出结果 JavaHello JavaWorld 6 5 3Pattern类和Matcher类 3 以多条件分割字符串Patternpattern Ppile String strs pattern split

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论