当前位置: 首页 > news >正文

织梦高端html5网站建设工作室网络公司网站模板凡科企业网站如何建设

织梦高端html5网站建设工作室网络公司网站模板,凡科企业网站如何建设,wordpress 转 ios app,服务器安装网站Java 日期时间java.util包提供了Date类来封装当前的日期和时间。Date类提供两个构造函数来实例化Date对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数#xff0c;该参数是从1970年1月1日起的毫秒数。Date(long millisec)Date对象创建…Java 日期时间java.util包提供了Date类来封装当前的日期和时间。Date类提供两个构造函数来实例化Date对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数该参数是从1970年1月1日起的毫秒数。Date(long millisec)Date对象创建以后可以调用下面的方法。序号方法和描述1boolean afterDate date若当调用此方法的Date对象在指定日期之后返回true否则返回false。2boolean beforeDate date若当调用此方法的Date对象在指定日期之前返回true否则返回false。3Object clone 返回此对象的副本。4int compareToDate date比较当调用此方法的Date对象和指定日期。两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。5int compareToObject obj 若obj是Date类型则操作等同于compareToDate。否则它抛出ClassCastException。6boolean equalsObject date当调用此方法的Date对象和指定日期相等时候返回true否则返回false。7long getTime 返回自 1970 年 1 月 1 日 000000 GMT 以来此 Date 对象表示的毫秒数。8int hashCode 返回此对象的哈希码值。9void setTimelong time用自1970年1月1日000000 GMT以后时间毫秒数设置时间和日期。10String toString 转换Date对象为String表示形式并返回该字符串。获取当前日期时间Java中获取当前日期和时间很简单使用Date对象的 toString方法来打印当前日期和时间如下所示import java.util.Date;publicclassMain{publicstaticvoidmain(String args[]){// 初始化 Date 对象Date date new Date();// 使用 toString() 函数显示日期时间System.out.println(date.toString());} }尝试一下以上实例编译运行结果如下:Mon May 0409:51:52 CDT 2013日期比较Java使用以下三种方法来比较两个日期使用getTime 方法获取两个日期自1970年1月1日经历的毫秒数值然后比较这两个值。使用方法beforeafter和equals。例如一个月的12号比18号早则new Date99 2 12.beforenew Date 99 2 18返回true。使用compareTo方法它是由Comparable接口定义的Date类实现了这个接口。使用SimpleDateFormat格式化日期SimpleDateFormat是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat允许你选择任何用户自定义日期时间格式来运行。例如import java.util.*; import java.text.*;publicclassMain{publicstaticvoidmain(String args[]){Date dNow new Date( );SimpleDateFormat ft new SimpleDateFormat (E yyyy.MM.dd at hh:mm:ss a zzz);System.out.println(Current Date: ft.format(dNow));} }尝试一下以上实例编译运行结果如下:Current Date: Sun 2004.07.18 at 04:14:09 PM PDT简单的DateFormat格式化编码时间模式字符串用来指定时间格式。在此模式中所有的ASCII字母被保留为模式字母定义如下字母描述示例G纪元标记广告y四位年份2001M月份七月或07d一个月的日期10h上午/下午 1~12格式小时12H一天中的小时 (0~23)22m分钟数30s秒数55S毫秒数234E星期几星期二D一年中的日子360F一个月中第几周的周几2 月第二个星期三w一年中第几周40W一个月中第几周1一个上午/下午标记下午k一天中的小时(1~24)24K上午/下午 0~11格式小时10z时区东部标准时间文字定界符定界符单引号使用printf格式化日期printf方法可以很轻松地格式化时间和日期。使用两个字母格式它以t开头并且以下面表格中的一个字母结尾。例如import java.util.Date;publicclassMain{publicstaticvoidmain(String args[]){// 初始化 Date 对象Date date new Date();// 使用toString()显示日期和时间String str String.format(Current Date/Time : %tc, date );System.out.printf(str);} }尝试一下以上实例编译运行结果如下:Current Date/Time : Sat Dec 1516:37:57 MST 2012如果你需要重复提供日期那么利用这种方式来格式化它的每一部分就有点复杂了。因此可以利用一个格式化字符串指出要被格式化的参数的索引。索引必须紧跟在%后面而且必须以$结束。例如import java.util.Date;publicclassMain{publicstaticvoidmain(String args[]){// 初始化 Date 对象Date date new Date();// 使用toString()显示日期和时间System.out.printf(%1$s %2$tB %2$td, %2$tY, Due date:, date);} }尝试一下以上实例编译运行结果如下:Due date: February 09, 2004或者你可以使用标志。它表明先前被格式化的参数要被再次使用。例如import java.util.Date;publicclassMain{publicstaticvoidmain(String args[]){// 初始化 Date 对象Date date new Date();// 显示格式化时间System.out.printf(%s %tB %te, %tY,Due date:, date);} } 尝试一下以上实例编译运行结果如下:Due date: February 09, 2004日期和时间转换字符字符描述例子c完整的日期和时间Mon May 04 09:51:52 CDT 2009FISO 8601 格式日期2004-02-09DU.S. 格式日期 (月/日/年)02/09/2004T24小时时间18:05:19r12小时时间06:05:19 pmR24小时时间不包含秒18:05Y4位年份(包含前导0)2004y年份后2位(包含前导0)04C年份前2位(包含前导0)20B月份全称二月b月份简称2月n2位月份(包含前导0)02d2位日子(包含前导0)03e2位日子(不包含前导0)9一个星期全称星期一一个星期简称星期一j3位年份(包含前导0)069H2位小时(包含前导0), 00 到 2318k2位小时(不包含前导0), 0 到 2318我2位小时(包含前导0), 01 到 1206l2位小时(不包含前导0), 1 到 126M2位分钟(包含前导0)05S2位秒数(包含前导0)19L3位毫秒(包含前导0)047N9位纳秒(包含前导0)047000000P大写上下午标志下午p小写上下午标志下午z从GMT的RFC 822数字偏移-0800Z时区太平洋标准时间s自 1970-01-01 000000 GMT的秒数1078884319Q自 1970-01-01 000000 GMT的毫妙1078884319047还有其他有用的日期和时间相关的类。对于更多的细节你可以参考到Java标准文档。解析字符串为时间SimpleDateFormat 类有一些附加的方法特别是parse它试图按照给定的 SimpleDateFormat 对象的格式化存储来解析字符串。例如import java.util.*; import java.text.*;publicclassMain{publicstaticvoidmain(String args[]){SimpleDateFormat ft new SimpleDateFormat (yyyy-MM-dd); String input args.length 0 ? 1818-11-11 : args[0]; System.out.print(input Parses as ); Date t; try { t ft.parse(input); System.out.println(t); } catch (ParseException e) { System.out.println(Unparseable using ft); }} }尝试一下以上实例编译运行结果如下:$ java DateDemo 1818-11-11 Parses as Wed Nov 1100:00:00 GMT 1818 $ java DateDemo 2007-12-012007-12-01 Parses as Sat Dec 0100:00:00 GMT 2007Java 休眠(sleep)你可以让程序休眠一毫秒的时间或者到您的计算机的寿命长的任意段时间。例如下面的程序会休眠3秒import java.util.*;publicclassMain{publicstaticvoidmain(String args[]){try { System.out.println(new Date( ) \n); Thread.sleep(5*60*10); System.out.println(new Date( ) \n); } catch (Exception e) { System.out.println(Got an exception!); }} }尝试一下以上实例编译运行结果如下:Sun May 0318:04:41 GMT 2009Sun May 0318:04:44 GMT 2009测量时间下面的一个例子表明如何测量时间间隔以毫秒为单位import java.util.*;publicclassMain{publicstaticvoidmain(String args[]){try {long start System.currentTimeMillis( );System.out.println(new Date( ) \n);Thread.sleep(5*60*10);System.out.println(new Date( ) \n);long end System.currentTimeMillis( );long diff end - start;System.out.println(Difference is : diff);} catch (Exception e) {System.out.println(Got an exception!);}} }尝试一下以上实例编译运行结果如下:Sun May 0318:16:51 GMT 2009Sun May 0318:16:54 GMT 2009Difference is : 3050Calendar类我们现在已经能够格式化并创建一个日期对象了但是我们如何才能设置和获取日期数据的特定部分呢比如说小时日或者分钟? 我们又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。Calendar类的功能要比Date类强大很多而且在实现方式上也比Date类要复杂一些。Calendar类是一个抽象类在实际使用时实现特定的子类的对象创建对象的过程对程序员来说是透明的只需要使用getInstance方法创建即可。创建一个代表系统当前日期的Calendar对象Calendar c Calendar.getInstance();//默认是当前日期创建一个指定日期的Calendar对象使用Calendar类代表特定的时间需要首先创建一个Calendar的对象然后再设定该对象中的年月日参数来完成。//创建一个代表2009年6月12日的Calendar对象 Calendar c1 Calendar.getInstance(); c1.set(2009, 6 - 1, 12);Calendar类对象字段类型Calendar类中用一下这些常量表示不同的意义jdk内的很多类其实都是采用的这种思想常量描述Calendar.YEAR年份Calendar.MONTH月份Calendar.DATE日期Calendar.DAY_OF_MONTH日期和上面的字段意义完全相同Calendar.HOUR12小时制的小时Calendar.HOUR_OF_DAY24小时制的小时Calendar.MINUTE分钟Calendar.SECOND秒Calendar.DAY_OF_WEEK星期几Calendar类对象信息的设置Set设置如Calendar c1 Calendar.getInstance();调用publicfinalvoidset(int year,int month,int date)c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为2009、5、12利用字段类型设置如果只设定某个字段例如日期的值则可以使用如下set方法publicvoidset(int field,int value)把 c1对象代表的日期设置为10号其它所有的数值会被重新计算c1.set(Calendar.DATE,10);把c1对象代表的年份设置为2008年其他的所有数值会被重新计算c1.set(Calendar.YEAR,2008);其他字段属性set的意义以此类推Add设置Calendar c1 Calendar.getInstance();把c1对象的日期加上10也就是c1所表的日期的10天后的日期其它所有的数值会被重新计算c1.add(Calendar.DATE, 10);把c1对象的日期减去10也就是c1所表的日期的10天前的日期其它所有的数值会被重新计算c1.add(Calendar.DATE, -10);其他字段属性的add的意义以此类推Calendar类对象信息的获得Calendar c1 Calendar.getInstance(); // 获得年份int year c1.get(Calendar.YEAR); // 获得月份int month c1.get(Calendar.MONTH) 1; // 获得日期int date c1.get(Calendar.DATE); // 获得小时int hour c1.get(Calendar.HOUR_OF_DAY); // 获得分钟int minute c1.get(Calendar.MINUTE); // 获得秒int second c1.get(Calendar.SECOND); // 获得星期几注意这个与Date类是不同的1代表星期日、2代表星期1、3代表星期二以此类推int day c1.get(Calendar.DAY_OF_WEEK);GregorianCalendar类Calendar类实现了公历日历GregorianCalendar是Calendar类的一个具体实现。Calendar 的getInstance方法返回一个默认用当前的语言环境和时区初始化的GregorianCalendar对象。GregorianCalendar定义了两个字段AD和BC。这些代表公历定义的两个时代。下面列出GregorianCalendar对象的几个构造方法序号构造函数和说明1GregorianCalendar()在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。2GregorianCalendar(int year, int month, int date)在具有默认语言环境的默认时区内构造一个带有给定日期设置的 GregorianCalendar3GregorianCalendar(int year, int month, int date, int hour, int minute)为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。4GregorianCalendar(int year, int month, int date, int hour, int minute, int second) 为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。5GregorianCalendar(Locale aLocale)在具有给定语言环境的默认时区内构造一个基于当前时间的 GregorianCalendar。6GregorianCalendar(TimeZone zone)在具有默认语言环境的给定时区内构造一个基于当前时间的 GregorianCalendar。7GregorianCalendar(TimeZone zone, Locale aLocale) 在具有给定语言环境的给定时区内构造一个基于当前时间的 GregorianCalendar。这里是GregorianCalendar 类提供的一些有用的方法列表序号方法和说明1void add(int field, int amount)根据日历规则将指定的有符号的时间量添加到给定的日历字段中。2protected void computeFields()转换UTC毫秒值为时间域值3protected void computeTime()覆盖Calendar 转换时间域值为UTC毫秒值4boolean equals(Object obj)比较此 GregorianCalendar 与指定的 Object。5int get(int field)获取指定字段的时间值6int getActualMaximum(int field)返回当前日期给定字段的最大值7int getActualMinimum(int field)返回当前日期给定字段的最小值8int getGreatestMinimum(int field) 返回此 GregorianCalendar 实例给定日历字段的最高的最小值。9Date getGregorianChange()获得格里高利历的更改日期。10int getLeastMaximum(int field)返回此 GregorianCalendar 实例给定日历字段的最低的最大值11int getMaximum(int field)返回此 GregorianCalendar 实例的给定日历字段的最大值。12Date getTime()获取日历当前时间。13long getTimeInMillis()获取用长整型表示的日历的当前时间14TimeZone getTimeZone()获取时区。15int getMinimum(int field)返回给定字段的最小值。16int hashCode()重写hashCode.17boolean isLeapYear(int year)确定给定的年份是否为闰年。18void roll(int field, boolean up)在给定的时间字段上添加或减去上/下单个时间单元不更改更大的字段。19void set(int field, int value)用给定的值设置时间字段。20void set(int year, int month, int date)设置年、月、日的值。21void set(int year, int month, int date, int hour, int minute)设置年、月、日、小时、分钟的值。22void set(int year, int month, int date, int hour, int minute, int second)设置年、月、日、小时、分钟、秒的值。23void setGregorianChange(Date date)设置 GregorianCalendar 的更改日期。24void setTime(Date date)用给定的日期设置Calendar的当前时间。25void setTimeInMillis(long millis)用给定的long型毫秒数设置Calendar的当前时间。26void setTimeZone(TimeZone value)用给定时区值设置当前时区。27String toString()返回代表日历的字符串。实例import java.util.*;publicclassGregorianCalendarDemo{publicstaticvoidmain(String args[]){String months[] {Jan, Feb, Mar, Apr,May, Jun, Jul, Aug,Sep, Oct, Nov, Dec};int year;// 初始化 Gregorian 日历// 使用当前时间和日期// 默认为本地时间和时区GregorianCalendar gcalendar new GregorianCalendar();// 显示当前时间和日期的信息System.out.print(Date: );System.out.print(months[gcalendar.get(Calendar.MONTH)]);System.out.print( gcalendar.get(Calendar.DATE) );System.out.println(year gcalendar.get(Calendar.YEAR));System.out.print(Time: );System.out.print(gcalendar.get(Calendar.HOUR) :);System.out.print(gcalendar.get(Calendar.MINUTE) :);System.out.println(gcalendar.get(Calendar.SECOND));// 测试当前年份是否为闰年if(gcalendar.isLeapYear(year)) {System.out.println(当前年份是闰年);}else {System.out.println(当前年份不是闰年);}} }以上实例编译运行结果如下Date: Apr 222009 Time: 11:25:27 当前年份不是闰年关于Calender 类的完整列表你可以参考标准的Java文档。Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言但是在每种语言中有细微的差别。Java正则表达式和Perl的是最为相似的。java.util.regex包主要包括以下三个类Pattern类pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象你必须首先调用其公共静态编译方法它返回一个Pattern对象。该方法接受一个正则表达式作为它的第一个参数。Matcher类Matcher对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样Matcher也没有公共构造方法。你需要调用Pattern对象的matcher方法来获得一个Matcher对象。PatternSyntaxExceptionPatternSyntaxException是一个非强制异常类它表示一个正则表达式模式中的语法错误。捕获组捕获组是把多个字符当一个单独单元进行处理的方法它通过对括号内的字符分组来创建。例如正则表达式(dog) 创建了单一分组组里包含do和g。捕获组是通过从左至右计算其开括号来编号。例如在表达式ABC有四个这样的组((A)(B(C)))(A)(B(C))(C)可以通过调用matcher对象的groupCount方法来查看表达式有多少个分组。groupCount方法返回一个int值表示matcher对象当前有多个捕获组。还有一个特殊的组组0它总是代表整个表达式。该组不包括在groupCount的返回值中。实例下面的例子说明如何从一个给定的字符串中找到数字串import java.util.regex.Matcher; import java.util.regex.Pattern;publicclassRegexMatches{publicstaticvoidmain( String args[] ){// 按指定模式在字符串查找String line This order was placed for QT3000! OK?;String pattern (.*)(\\d)(.*);// 创建 Pattern 对象Pattern r Pattern.compile(pattern);// 现在创建 matcher 对象Matcher m r.matcher(line);if (m.find( )) {System.out.println(Found value: m.group(0) );System.out.println(Found value: m.group(1) );System.out.println(Found value: m.group(2) );} else {System.out.println(NO MATCH);}} }以上实例编译运行结果如下Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT300 Found value: 0正则表达式语法字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如n匹配字符n。\n匹配换行符。序列\\匹配\\(匹配(。^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性^ 还会与\n或\r之后的位置匹配。$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性$ 还会与\n或\r之前的位置匹配。*零次或多次匹配前面的字符或子表达式。例如zo* 匹配z和zoo。* 等效于 {0,}。一次或多次匹配前面的字符或子表达式。例如zo与zo和zoo匹配但与z不匹配。 等效于 {1,}。?零次或一次匹配前面的字符或子表达式。例如do(es)?匹配do或does中的do。? 等效于 {0,1}。{n}n 是非负整数。正好匹配 n 次。例如o{2}与Bob中的o不匹配但与food中的两个o匹配。{n,}n 是非负整数。至少匹配 n 次。例如o{2,}不匹配Bob中的o而匹配foooood中的所有 o。o{1,}等效于o。o{0,}等效于o*。{n,m}M 和 n 是非负整数其中 n m。匹配至少 n 次至多 m 次。例如o{1,3}匹配fooooood中的头三个 o。o{0,1} 等效于 o?。注意您不能将空格插入逗号和数字之间。?当此字符紧随任何其他限定符*、、?、{n}、{n,}、{n,m}之后时匹配模式是非贪心的。非贪心的模式匹配搜索到的、尽可能短的字符串而默认的贪心的模式匹配搜索到的、尽可能长的字符串。例如在字符串oooo中o?只匹配单个o而o匹配所有o。.匹配除\r\n之外的任何单个字符。若要匹配包括\r\n在内的任意字符请使用诸如[\s\S]之类的模式。(pattern)匹配 pattern 并捕获该匹配的子表达式。可以使用 $0…$9 属性从结果匹配集合中检索捕获的匹配。若要匹配括号字符 ( )请使用\(或者\)。(?:pattern)匹配 pattern 但不捕获该匹配的子表达式即它是一个非捕获匹配不存储供以后使用的匹配。这对于用or字符 (|) 组合模式部件的情况很有用。例如industr(?:y|ies) 是比 industry|industries 更经济的表达式。(?pattern)执行正向预测先行搜索的子表达式该表达式匹配处于匹配 pattern 的字符串的起始点的字符串。它是一个非捕获匹配即不能捕获供以后使用的匹配。例如Windows (?95|98|NT|2000) 匹配Windows 2000中的Windows但不匹配Windows 3.1中的Windows。预测先行不占用字符即发生匹配后下一匹配的搜索紧随上一匹配之后而不是在组成预测先行的字符后。(?!pattern)执行反向预测先行搜索的子表达式该表达式匹配不处于匹配 pattern 的字符串的起始点的搜索字符串。它是一个非捕获匹配即不能捕获供以后使用的匹配。例如Windows (?!95|98|NT|2000) 匹配Windows 3.1中的 Windows但不匹配Windows 2000中的Windows。预测先行不占用字符即发生匹配后下一匹配的搜索紧随上一匹配之后而不是在组成预测先行的字符后。x|y匹配 x 或 y。例如z|food 匹配z或food。(z|f)ood 匹配zood或food。[xyz]字符集。匹配包含的任一字符。例如[abc]匹配plain中的a。[^xyz]反向字符集。匹配未包含的任何字符。例如[^abc]匹配plain中plin。[a-z]字符范围。匹配指定范围内的任何字符。例如[a-z]匹配a到z范围内的任何小写字母。[^a-z]反向范围字符。匹配不在指定的范围内的任何字符。例如[^a-z]匹配任何不在a到z范围内的任何字符。\b匹配一个字边界即字与空格间的位置。例如er\b匹配never中的er但不匹配verb中的er。\B非字边界匹配。er\B匹配verb中的er但不匹配never中的er。\cx匹配 x 指示的控制字符。例如\cM 匹配 Control-M 或回车符。x 的值必须在 A-Z 或 a-z 之间。如果不是这样则假定 c 就是c字符本身。\d数字字符匹配。等效于 [0-9]。\D非数字字符匹配。等效于 [^0-9]。\f换页符匹配。等效于 \x0c 和 \cL。\n换行符匹配。等效于 \x0a 和 \cJ。\r匹配一个回车符。等效于 \x0d 和 \cM。\s匹配任何空白字符包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。\S匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。\t制表符匹配。与 \x09 和 \cI 等效。\v垂直制表符匹配。与 \x0b 和 \cK 等效。\w匹配任何字类字符包括下划线。与[A-Za-z0-9_]等效。\W与任何非单词字符匹配。与[^A-Za-z0-9_]等效。\xn匹配 n此处的 n 是一个十六进制转义码。十六进制转义码必须正好是两位数长。例如\x41匹配A。\x041与\x041等效。允许在正则表达式中使用 ASCII 代码。\num匹配 num此处的 num 是一个正整数。到捕获匹配的反向引用。例如(.)\1匹配两个连续的相同字符。\n标识一个八进制转义码或反向引用。如果 \n 前面至少有 n 个捕获子表达式那么 n 是反向引用。否则如果 n 是八进制数 (0-7)那么 n 是八进制转义码。\nm标识一个八进制转义码或反向引用。如果 \nm 前面至少有 nm 个捕获子表达式那么 nm 是反向引用。如果 \nm 前面至少有 n 个捕获则 n 是反向引用后面跟有字符 m。如果两种前面的情况都不存在则 \nm 匹配八进制值 nm其中 n 和 m 是八进制数字 (0-7)。\nml当 n 是八进制数 (0-3)m 和 l 是八进制数 (0-7) 时匹配八进制转义码 nml。\un匹配 n其中 n 是以四位十六进制数表示的 Unicode 字符。例如\u00A9 匹配版权符号 (©)。Matcher类的方法索引方法索引方法提供了有用的索引值精确表明输入字符串中在哪能找到匹配序号方法及说明1public int start()返回以前匹配的初始索引。2public int start(int group) 返回在以前的匹配操作期间由给定组所捕获的子序列的初始索引3public int end()返回最后匹配字符之后的偏移量。4public int end(int group)返回在以前的匹配操作期间由给定组所捕获子序列的最后字符之后的偏移量。研究方法研究方法用来检查输入字符串并返回一个布尔值表示是否找到该模式序号方法及说明1public boolean lookingAt() 尝试将从区域开头开始的输入序列与该模式匹配。2public boolean find()尝试查找与该模式匹配的输入序列的下一个子序列。3public boolean find(int start重置此匹配器然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。4public boolean matches()尝试将整个区域与模式匹配。替换方法替换方法是替换输入字符串里文本的方法序号方法及说明1public Matcher appendReplacement(StringBuffer sb, String replacement)实现非终端添加和替换步骤。2public StringBuffer appendTail(StringBuffer sb)实现终端添加和替换步骤。3public String replaceAll(String replacement) 替换模式与给定替换字符串相匹配的输入序列的每个子序列。4public String replaceFirst(String replacement) 替换模式与给定替换字符串匹配的输入序列的第一个子序列。5public static String quoteReplacement(String s)返回指定字符串的字面替换字符串。这个方法返回一个字符串就像传递给Matcher类的appendReplacement 方法一个字面字符串一样工作。start 和end 方法下面是一个对单词cat出现在输入字符串中出现次数进行计数的例子import java.util.regex.Matcher; import java.util.regex.Pattern;publicclassRegexMatches{privatestaticfinal String REGEX \\bcat\\b;privatestaticfinal String INPUT cat cat cat cattie cat;publicstaticvoidmain( String args[] ){Pattern p Pattern.compile(REGEX);Matcher m p.matcher(INPUT); // 获取 matcher 对象int count 0;while(m.find()) {count;System.out.println(Match number count);System.out.println(start(): m.start());System.out.println(end(): m.end());}} }以上实例编译运行结果如下Match number 1 start(): 0 end(): 3 Match number 2 start(): 4 end(): 7 Match number 3 start(): 8 end(): 11 Match number 4 start(): 19 end(): 22可以看到这个例子是使用单词边界以确保字母 c a t 并非仅是一个较长的词的子串。它也提供了一些关于输入字符串中匹配发生位置的有用信息。Start方法返回在以前的匹配操作期间由给定组所捕获的子序列的初始索引end方法最后一个匹配字符的索引加1。matches 和lookingAt 方法matches 和lookingAt 方法都用来尝试匹配一个输入序列模式。它们的不同是matches要求整个序列都匹配而lookingAt 不要求。这两个方法经常在输入字符串的开始使用。我们通过下面这个例子来解释这个功能import java.util.regex.Matcher; import java.util.regex.Pattern;publicclassRegexMatches{privatestaticfinal String REGEX foo;privatestaticfinal String INPUT fooooooooooooooooo;privatestatic Pattern pattern;privatestatic Matcher matcher;publicstaticvoidmain( String args[] ){pattern Pattern.compile(REGEX);matcher pattern.matcher(INPUT);System.out.println(Current REGEX is: REGEX);System.out.println(Current INPUT is: INPUT);System.out.println(lookingAt(): matcher.lookingAt());System.out.println(matches(): matcher.matches());} }以上实例编译运行结果如下Current REGEX is: foo Current INPUT is: fooooooooooooooooo lookingAt(): truematches(): falsereplaceFirst 和replaceAll 方法replaceFirst 和replaceAll 方法用来替换匹配正则表达式的文本。不同的是replaceFirst 替换首次匹配replaceAll 替换所有匹配。下面的例子来解释这个功能import java.util.regex.Matcher; import java.util.regex.Pattern;publicclassRegexMatches{privatestatic String REGEX dog;privatestatic String INPUT The dog says meow. All dogs say meow.;privatestatic String REPLACE cat;publicstaticvoidmain(String[] args){Pattern p Pattern.compile(REGEX);// get a matcher objectMatcher m p.matcher(INPUT); INPUT m.replaceAll(REPLACE);System.out.println(INPUT);} }以上实例编译运行结果如下The cat says meow. All cats say meow.appendReplacement 和 appendTail 方法Matcher 类也提供了appendReplacement 和appendTail 方法用于文本替换看下面的例子来解释这个功能import java.util.regex.Matcher; import java.util.regex.Pattern;publicclassRegexMatches{privatestatic String REGEX a*b;privatestatic String INPUT aabfooaabfooabfoob;privatestatic String REPLACE -;publicstaticvoidmain(String[] args){Pattern p Pattern.compile(REGEX);// 获取 matcher 对象Matcher m p.matcher(INPUT);StringBuffer sb new StringBuffer();while(m.find()){m.appendReplacement(sb,REPLACE);}m.appendTail(sb);System.out.println(sb.toString());} }以上实例编译运行结果如下-foo-foo-foo-PatternSyntaxException 类的方法PatternSyntaxException 是一个非强制异常类它指示一个正则表达式模式中的语法错误。PatternSyntaxException 类提供了下面的方法来帮助我们查看发生了什么错误。序号方法及说明1public String getDescription()获取错误的描述。2public int getIndex() 获取错误的索引。3public String getPattern()获取错误的正则表达式模式。4public String getMessage()返回多行字符串包含语法错误及其索引的描述、错误的正则表达式模式和模式中错误索引的可视化指示。
http://www.dnsts.com.cn/news/20472.html

相关文章:

  • 做网站的公司怎么推销四子王旗建设局网站
  • 壹像素网站帝国网站认证码
  • 建筑工程网上流程工作失误随州seo推广
  • 湖北金扬建设网站软件企业
  • 电子商务网站管理系统网站建设 职责
  • 山东外贸建站平面设计模板素材网站
  • 宝安建设网站用狐狸做logo的网站
  • 中国建设银行总行官方网站jsp电子商务网站建设实验
  • 重庆做网站泉州公司南宁百度seo排名价格
  • 金顶街网站建设西安做软件的公司
  • 科院公司网站建设目标是什么计算机大专学历有用吗
  • 桂林网站优化公司网站跟客户端推广怎么做
  • 国内做网站的龙头企业调用wordpress搜索代码
  • 广州网站建设大公司排名wordpress.html
  • 静态做网站河南省建设厅网站资质平移办法
  • vue做响应式网站我要表白网站
  • php网站后台忘记密码昌邑营销型网站建设
  • 网站备案ip地址wordpress摄影公司
  • 网站描述案例黄埔做网站的公司
  • 网站排队队列怎么做电脑公司网站模板
  • 哪个网站使用vue 做的录像网站怎么做
  • 网站设计平台大连建设网节能办公室网站
  • 两人合伙做网站但不准备开公司如何恢复wordpress
  • 网站改版是什么意思网站管理建设落实报告
  • 网站运营与管理实验报告个人做搜索引擎网站违法吗
  • wordpress带轮播企业站主题谷歌官方网站注册
  • 哪家房屋设计公司网站wordpress维基主题
  • 微金所网站谁做的网站建立的
  • 广州市建设工程检测中心网站在线培训课程
  • 网站中国风模板空间中国网站