08 正则表达式,Math类,Random,System类,BigInteger,BigDecimal,Date,DateFormat,Calendar
正则表达式:
是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规
则。有自己特殊的应用。
public class Demo2_Regex { public static void main(String[] args) {
/*字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w] Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次 */
String regex = "\\d"; // 数字
System.out.println("0".matches(regex)); String string = "1230.000.000";
String[] arr = string.split("\\.");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
} }
import java.util.Arrays; public class Test1 { public static void main(String[] args) {
// 有如下一个字符串:”91 27 46 38 50”,
// 请写代码实现最终输出结果是:”27 38 46 50 91”
String string = "91 27 46 38 50";
String[] arr = string.split(" "); int[] iArr = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
iArr[i] = Integer.parseInt(arr[i]);
}
// 排序
Arrays.sort(iArr); // 拼接成字符串
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < iArr.length; i++) {
if(i == iArr.length-1) {
stringBuilder.append(iArr[i]);
}else {
stringBuilder.append(iArr[i]+" ");
}
}
System.out.println(stringBuilder);
} }
替换全部replaceAll:
String string = "2012.12.12";
String regex = "\\."; String string2 = string.replaceAll(regex, "/"); //替换全部
System.out.println(string2); // 2012/12/12
分组:
public class Demo4_Regex { public static void main(String[] args) {
// 分组
// 按照叠词切割: "sdqqfgkkkhjppppkl";
String regex = "(.)\\1+";
String string = "sdqqfgkkkhjppppkl";
String[] arr = string.split(regex);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]); // sdfghjkl
}
//需求:我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程.. 程
// 将字符串还原成:“我要学编程”
String string2 = "我我....我...我.要...要要...要学....学学..学.编..编编.编. 程.程.程..程";
String string3 = string2.replaceAll("\\.+", "");
String string4 = string3.replaceAll("(.)\\1+", "$1"); // $1 第一组中的内容
System.out.println(string4); // 我要学编程
} }
import java.util.regex.Matcher;
import java.util.regex.Pattern; public class Demo5_Pattern { public static void main(String[] args) {
Pattern pattern = Pattern.compile("a*b"); //获取正则表达式
Matcher matcher = pattern.matcher("aaaab");//获取匹配器
boolean b = matcher.matches(); //是否匹配 System.out.println(b); System.out.println("aaaab".matches("a*b")); // 找所有数组
String string = "qwewqe12312eqwdq42341weee11w12";
Pattern pattern2 = Pattern.compile("\\d+");
Matcher matcher2 = pattern2.matcher(string); while(matcher2.find())
System.out.println(matcher2.group());
} }
Math类概述
* Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
成员方法
* public static int abs(int a) 绝对值
* public static double ceil(double a) 向上取整 10.2 -> 11.0
* public static double floor(double a) 向下取整
* public static int max(int a,int b) min自学
* public static double pow(double a,double b) a的b次方
* public static double random() [0.0 ~1.0)的小数
* public static int round(float a) 四舍五入
* public static double sqrt(double a) 根号a
Random:
import java.util.Random; public class Demo1_Random { public static void main(String[] args) {
Random random = new Random();
System.out.println(random.nextInt()); Random random2 = new Random(1000); // 随机种子
System.out.println(random2.nextInt()); //每次运行的结果相同 System.out.println(random.nextInt(100)); // [0~100)
} }
System类:
概述
* System 类包含一些有用的类字段和方法。它不能被实例化。
成员方法
* public static void gc() 运行垃圾回收器
public class Demo2_System { public static void main(String[] args) {
new Demo();
System.gc(); // 会调用finalize
} }
class Demo{ @Override
protected void finalize() {
System.out.println("垃圾清扫了"); } }
* public static void exit(int status) 退出jvm 非0状态是异常退出
* public static long currentTimeMillis() 当前时间的毫秒值
* pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos,
int length) 将数组内容拷贝
BigInteger:
BigInteger的概述
* 可以让超过Integer范围内的数据进行运算
构造方法
* public BigInteger(String val)
成员方法
* public BigInteger add(BigInteger val) 加
* public BigInteger subtract(BigInteger val) 减
* public BigInteger multiply(BigInteger val) 乘
* public BigInteger divide(BigInteger val) 除
* public BigInteger[] divideAndRemainder(BigInteger val) 取商 余数
BigDecimal:
能精确的表示、计算浮点数
import java.math.BigDecimal; public class Demo3_BigDecimal { public static void main(String[] args) {
System.err.println(2.0-1.1); // 0.8999999999999999 BigDecimal bigDecimal = new BigDecimal(2.0);
BigDecimal bigDecimal1 = new BigDecimal(1.1);
System.out.println(bigDecimal.subtract(bigDecimal1)); // 0.899999999999999911182158029987476766109466552734375 BigDecimal bigDecima2 = new BigDecimal("2.0");
BigDecimal bigDecimal3 = new BigDecimal("1.1");
System.out.println(bigDecima2.subtract(bigDecimal3));//0.9 BigDecimal b1 = BigDecimal.valueOf(2.0);
BigDecimal b2 = BigDecimal.valueOf(1.1);
System.out.println(b1.subtract(b2)); // 0.9
} }
Date:
import java.util.Date; public class Demo4_Data { public static void main(String[] args) {
Date date = new Date();
System.out.println(date);//Thu Oct 25 17:30:18 CST 2018 Date date2 = new Date(0);
System.out.println(date2);//Thu Jan 01 08:00:00 CST 1970 System.out.println(date.getTime());//
System.out.println(System.currentTimeMillis());// date.setTime(1000);
System.out.println(date);//Thu Jan 01 08:00:01 CST 1970
} }
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽
象类,所以使用其子类SimpleDateFormat
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; public class Demo5_SimpleDateFormat { public static void main(String[] args) {
Date date = new Date(0);
SimpleDateFormat sdf = new SimpleDateFormat();
System.out.println(sdf.format(date));//70-1-1 上午8:00 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");//创建 日期格式化类对象
System.out.println(sdf1.format(date));//1970/01/01 08:00:00 // 将日期对象转 换为字符串 String string = "2000年12月12日01:01:00";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年HH月dd日 hh:mm:ss");
try {
Date date2 = simpleDateFormat.parse(string); //将时间字符串转换成日 期对象
System.out.println(date2); //Wed Jan 12 12:01:00 CST 2000
} catch (ParseException e) {
e.printStackTrace();
} } }
import java.util.Calendar; public class Demo6_Calendar { public static void main(String[] args) {
// Calendar 类是一个抽象类,
// 它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换 提供了一些方法,
// 并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH)); //从0开始
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//从星期日开始 Calendar calendar2 = Calendar.getInstance();
System.out.println(calendar2.get(Calendar.YEAR));//
calendar2.add(Calendar.YEAR, 1);
System.out.println(calendar2.get(Calendar.YEAR));//
calendar2.add(Calendar.YEAR, -1);
System.out.println(calendar2.get(Calendar.YEAR));// calendar2.set(Calendar.YEAR, 2000); //设置指定字段
System.out.println(calendar2.get(Calendar.YEAR));//
} }
判断闰年:
import java.util.Calendar;
import java.util.Scanner; public class Test1 { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
String string = scanner.nextLine();
int year = Integer.parseInt(string); boolean b = getYear(year);
System.out.println(b);
} private static boolean getYear(int year) {
// 判断是否是闰年
Calendar calendar = Calendar.getInstance();
calendar.set(year, 2, 1); //设置为这年的3.1
calendar.add(Calendar.DAY_OF_MONTH, -1);
return calendar.get(Calendar.DAY_OF_MONTH)==29;
} }
08 正则表达式,Math类,Random,System类,BigInteger,BigDecimal,Date,DateFormat,Calendar的更多相关文章
- JAVA之旅(二十三)——System,RunTime,Date,Calendar,Math的数学运算
JAVA之旅(二十三)--System,RunTime,Date,Calendar,Math的数学运算 map实在是太难写了,整理得我都晕都转向了,以后看来需要开一个专题来讲这个了,现在我们来时来学习 ...
- 正则表达式、Calendar类、SimpleDateFormat类、Date类、BigDecimal类、BigInteger类、System类、Random类、Math类(Java基础知识十四)
1.正则表达式的概述和简单使用 * A:正则表达式(一个字符串,是规则) * 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. * B: ...
- Math、Random、System、BigInteger、Date、DateFormat、Calendar类,正则表达式_DAY14
1:Math&大数据类四则运算 X abs(X x) double random() 产生随机数 double ceil(double a) 向上取整 double flo ...
- Math类、Random类、System类、BigInteger类、BigDecimal类、Date类、SimpleDateFormat、Calendar类
Math类* A:Math类概述 * Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. * B:成员方法 * public static int abs(int a) ...
- Java常用类之【Math类、Random类、System类、Runtime类】
一.Math类 Math类 [绝对值]Math.abs();//返回对应类型的绝对值 [最大值和最小值]Math.max(int a, int b) ,Math.min(int a,int b);(其 ...
- 14-02 Java Math类,Random类,System类,BigDecimal类
Math类 Math的方法 package cn.itcast_01; /* * Math:用于数学运算的类. * 成员变量: * public static final double PI * pu ...
- 日期类&&包装类&&System类&&Math类&&Arrays数组类&&大数据类
day 07 日期类 Date 构造函数 Date():返还当前日期. Date(long date):返还指定日期 date:时间戳--->距离1970年1月1日 零时的毫秒数 常用方法 日期 ...
- 01 语言基础+高级:1-5 常用API第二部分_day01.【Object类、常用API: Date类、System类、StringBuilder类】
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 java.lang.O ...
- java_Object类、日期时间类、System类、包装类
Object类 java.lang.Object 类是所有类的父类.它描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类, 那么默认则继承自O ...
- Object类、日期时间类、system类及StringBuilder字符串容器
一.Object类常用API 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.Object类中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是 ...
随机推荐
- lda topic number
Hi Vikas -- the optimum number of topics (K in LDA) is dependent on a at least two factors: Firstly, ...
- linux下详解shell中>/dev/null 2>&1
前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...
- std::string find 的返回值
std::string 的方法 find,返回值类型是std::string::size_type, 对应的是查找对象在字符串中的位置(从0开始), 如果未查找到,该返回值是一个很大的数据(4294 ...
- JavaScipt 中的事件循环(event loop),以及微任务 和宏任务的概念
说事件循环(event loop)之前先要搞清楚几个问题. 1. js为什么是单线程的? 试想一下,如果js不是单线程的,同时有两个方法作用dom,一个删除,一个修改,那么这时候浏览器该听谁的? ...
- spring bean 的生命周期
感谢博友,内容源于博友的文章 http://www.cnblogs.com/zrtqsk/p/3735273.html 通过了解spring的bean 的生命周期 ,再结合jdk的注解,继承sprin ...
- Java 实现倒计时(由秒计算天、小时、分钟、秒)
public class Countdown4 { private static long day = 0; private static long hour = 0; private static ...
- CCF关于NOIP2018获奖证书发放的公告
CCF定于即日起开始受理NOIP2018获奖证书申请.凡获得NOIP2018复赛提高组和普及组一二三等奖的选手均可申请证书.本次获奖证书有电子版和纸质版两种.电子版证书免费发放,纸质版证书收取部分工本 ...
- react全家桶-服务端与客户端配置
全家桶内装有: react - github react-router - github redux - github react-redux - github react-router-redux ...
- [Leetcode 62]机器人走路Unique Path 动态规划
[题目] A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below) ...
- Cracking The Coding Interview 9.6
//原文: // // Given a matrix in which each row and each column is sorted, write a method to find an el ...