Java正则表达式教程 – Java正则表达式量词 我们可以指定正则表达式中的字符的次数可以匹配字符序列。 为了使用正则表达式表达一个数字或更多的模式,我们可以使用量词。 下表列出了量词及其含义。 量词 含义 * 零次或更多次 + 一次或多次 ? 一次或根本不 {m} 正好m次 {m,} 至少m次 {m,n} 至少m,但不超过n次 量词必须遵循字符或字符类。 例子 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { // A group of 3 digits followed by 7 digits. String regex = "\\b(\\d{3})\\d{7}\\b"; // Compile the regular expression Pattern p = Pattern.compile(regex); String source = "12345678, 12345, and 9876543210"; // Get the Matcher object Matcher m = p.matcher(source); // Start matching and display the found area codes while (m.find()) { String phone = m.group(); String areaCode = m.group(1); System.out.println("Phone: " + phone + ", Area Code: " + areaCode); } } } 上面的代码生成以下结果。 例2 * 匹配零个或多个 d 。 import java.util.regex.Pattern; public class Main...
Java格式 – Java 打印格式字符串 使用Formatter格式化数据需要两种类型的输入: 格式字符串 值列表 格式字符串定义如何格式化值列表。 格式字符串可以包含静态文本和嵌入格式说明符。静态文本在格式字符串中作为结果输出。 格式说明符用于两个目的。 它用作格式字符串中格式化数据的占位符 它指定如何格式化数据 格式说明符 假设您要打印包含某人的出生日期的文本。以下是此类文本的示例: January 16, 1970 is Mike"s birth day. Let"s go and celebrate. January 11, 1971 is John"s birth day. Let"s go and celebrate. January 16, 1972 is Jane"s birth day. Let"s go and celebrate. January 16, 1973 is Kite"s birth day. Let"s go and celebrate. 上述文本包含固定文本和格式化文本。 为了重用格式和填写人名称和生日我们可以写一个模板如下: <month> <day>, <year> is <name>"s birth day. Let"s go and celebrate. 生日日期用尖括号括起来,以及人的姓名。我们可以称它为占位符。 后来我们可以为占位符提供真正的价值。 要在Formatter类中使用模板,我们将占位符转换为格式说明符。模板变为格式字符串。 格式说明符以百分号%开头。 我们可以重写可以与Formatter类一起使用的模板字符串,如下所示。 %1$tB %1$td, %1$tY is %2$s"s birth day. Let"s go and celebrate. 在此格式字符串中,%1 $ tB ,%1 $ td %1 $ tY 和%2 $ s 是格式说明符。 格式字符串中的其余文本,例如“生日,让我们去庆祝”,是固定文本。 例子 以下代码显示如何使用上述格式字符串打印格式化文本。 在代码中,我们创建了一个LocalDate来存储Mike的生日。 本地日期值和“Mike”成为格式字符串的输入值。 import java.time.LocalDate; import java.time.Month; public class Main { public static void main(String[] args) { LocalDate...
Java格式 – Java 打印日期/时间格式 Java 打印日期/时间格式处理日期,时间和日期时间值。 Java 打印日期/时间格式可以应用于格式值为long,Long,java.util.Calendar,java.util.Date,和java.time.temporal.TemporalAccessor类型。 长类型中的值解释为自1970年1月1日午夜UTC之后过去的毫秒数。 t大写变量T转换字符用于格式化日期/时间值。 日期/时间格式化的一般语法如下: %<argument_index$><flags><width><conversion> 精度不适用于日期/时间格式。 对于日期/时间格式,转换是一个双字符序列。 第一个字符总是’t’或’T’。 第二个字符,称为转换后缀,确定日期/时间参数的格式。 下表包含时间格式的后缀字符 后缀 含义 H 将时间格式设置为24小时制时钟的两位数小时。 有效值为00到23. 00用于午夜。 I 格式化12小时制时钟的一位两位数小时。 有效值为01到12。 k 格式化时间与H后缀相同,除了它不向输出添加前导零。 有效值为0到23。 l 格式化时间与“I”后缀相同,除了它不添加前导零。 有效值为1到12。 M 一小时内两位数的分钟。 有效值为00到59。 S 一个两位数的秒。 有效值为00到60。 L 一个三位数毫秒。 有效值为000到999。 N 一个九位数的纳秒。 有效值为000000000至999999999。 p 使用小写格式化特定于语言环境的上午或下午字符串。对于美国地区,“am”或“pm”。 要获取“AM”和“PM”,请使用大写变量“T”作为转换字符。 z 输出与GMT的数值时区偏移(例如,+0530)。 Z 输出时区的字符串缩写(例如,CST,EST,IST等)。 s 输出秒自1970年1月1日午夜UTC。 Q 自1970年1月1日午夜UTC以来的输出毫秒数。 日期格式化的后缀字符的下表列表 信 含义 B 在美国语言环境中输出本地特定的月份全名,例如“一月”,“二月”。 b 输出特定于语言环境的缩写月份名称,例如美国语言环境中的“Jan”,“Feb”。 h 与“b”相同。 输出特定于语言环境的缩写月份名称,例如美国语言环境中的“Jan”,“Feb”。 A 输出一周中某天的特定于地区的全名,例如美国地区的“星期日”,“星期一”。 a 输出一周中某天的特定于语言环境的短名称,例如美国语言环境的“Sun”,“Mon”。 C 将四位数年份除以100,并将结果格式化为两位数。 如果结果数字为一位数,它将添加一个前导零。 有效值为00到99.例如,如果四位数年份是2014,则它将输出20。 Y 如果年份包含少于四位数,则输出带有前导零的四位数年份。 y 输出年份的最后两位数字,如有必要,添加前导零。 2011年将输出11。 j 一年中三位数的日期。 有效值为000到366。 m 一个两位数的月份。 有效值为01到13.需要13的特殊值来支持农历日历。 d 一个两位数的日期。 有效值为01到31。 e 每月的日期。 有效值为1到31。 下表列出了日期/时间格式的后缀字符 格式 描述 R 输出时间以24小时时钟格式为“小时:分钟”。 它输出与%tH:%tM相同。 示例:11:23 T 以24小时制输出时间,格式为“小时:分:秒”。 它输出相同的“%tH:%tM:%tS”。 示例11:23:10 r 以24小时制输出时间,格式为“小时:分:秒”。 它输出相同的“%tH:%tM:%tS”。 示例11:23:10… D 输出日期为“%tm /%td /%ty”,例如“01/19/14″ F 输出日期为“%tY-%tm-%td”,如“2014-01-19″。 c 将日期和时间输出为“%ta%tb%td%tT%tZ%tY”,例如“Wed Jan 20 12:22:06 CST 2014″。 例子 以下代码显示如何使用日期时间格式化程序。...
Java格式 – Java日期格式类 Java 8有新的Date-Time API来处理日期和时间。 我们应该使用新的Java 8 Date-Time API来格式化和解析日期时间值。 如果我们正在编写与日期和时间相关的新代码,我们应该使用新的Date-Time API。 使用新的Java 8日期时间API格式化日期和时间。 此部分适用于使用旧日期和日历类的旧代码。 类 Java库提供了两个类来格式化日期: java.text.DateFormat java.text.SimpleDateFormat DateFormat 类是一个抽象类并且我们可以使用 DateFormat 类以预定义的格式来格式化日期。 因为它是抽象的,所以我们不能创建一个 DateFormat 类的实例使用 new 运算符。 我们必须使用它的一个 getXxxInstance()方法来创建新的实例。Xxx可以是日期,日期时间或时间。 要格式化日期时间值,我们使用 format()方法 DateFormat 类。 DateFormat类的格式化文本取决于两件事: 样式 语言环境 格式的样式决定了包括多少日期时间信息在格式化的文本 语言环境确定要使用的语言环境。 格式样式 Date Format 类将五个样式定义为常量: DateFormat.DEFAULT DateFormat.SHORT DateFormat.MEDIUM DateFormat.LONG DateFormat.FULL DEFAULT 格式与 MEDIUM 相同。getInstance()使用 SHORT 。 下表显示了对于美国区域设置以不同样式格式化的相同日期。 样式 格式化日期 DEFAULT Mar 27, 2014 SHORT 3/27/14 MEDIUM Mar 26, 2014 LONG March 26, 2014 FULL Sunday, November 2, 2014 例子 以下代码显示如何以简体中文格式显示语言环境的默认日期,法国和德国。 import java.text.DateFormat; import java.util.Date; import java.util.Locale; public class Main { public static void main(String[] args) { Date today = new Date(); // Print date in the default locale format Locale defaultLocale = Locale.getDefault(); printLocaleDetails(defaultLocale); printDate(defaultLocale, today); // Print date in French format...