正则表达式的应用:求开头不为0,长度为5-15,都是数字的字符串
String s="[1-9]\\d{4,14}";
[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{n} ,恰好 n 次
X{n,} ,至少 n 次
X{n,m} ,至少 n 次,但是不超过 m 次
String s = "金三胖.郭美美.李dayone";
String[] arr = s.split("\\."); //通过正则表达式切割字符串
String regex = "\\d"; //\\d代表的是任意数字
String s2 = s.replaceAll(regex, ""); //把字符串中的数字都删除
String s = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
String s2 = s.replaceAll("\\.+", ""); //把是.的字符(连续字符)删除
String s3 = s2.replaceAll("(.)\\1+", "$1"); //$1代表第一组中的内容
System.out.println(s3);
String s = "sdqqfgkkkhjppppkl";
String regex = "(.)\\1+"; //+代表第一组出现一次到多次
String[] arr = s.split(regex);
//叠词 快快乐乐,高高兴兴
String regex = "(.)\\1(.)\\2"; //\\1代表第一组又出现一次 \\2代表第二组又出现一次
System.out.println("快快乐乐".matches(regex));
System.out.println("快乐乐乐".matches(regex));
System.out.println("高高兴兴".matches(regex));
System.out.println("死啦死啦".matches(regex));
//叠词 死啦死啦,高兴高兴
String regex2 = "(..)\\1";
System.out.println("死啦死啦".matches(regex2));
System.out.println("高兴高兴".matches(regex2));
System.out.println("快快乐乐".matches(regex2));
String s = "我的手机是18988888888,我曾用过18987654321,还用过18812345678";
String regex="1[23456789]\\d{9}";
Pattern p=Pattern.compile(regex); //获取正则表达式
Matcher m=p.matcher(s); //获取匹配器
while(m.find()){ //查找匹配器中能满足正则表达式的字符串
System.out.println(m.group()); //查找到后,获取字符串并输出
}
Math.PI:圆周率的值
Math.abs(int num):求绝对值
Math.ceil(int num):向上取整
Math.floor(int num):向下取整
Math.round(int num):四舍五入
Math.random(int num):0-1之间的随机数
Math.max(int num1,int num2):两个数的较大值
Math.min(int num1,int num2):两个数的较小值
Math.pow(int num1,int num2):求n的m次方
Math.sqrt(int num);求平方根
Random r = new Random();
for(int i = 0; i < 10; i++) {
System.out.println(r.nextInt(10)); //生成在0到n范围内的随机数,包含0不包含n
}
int[] src = {11,22,33,44,55};
int[] dest = new int[8];
System.arraycopy(src, 0, dest, 0, src.length); //将数组内容拷贝
long start = System.currentTimeMillis(); //1秒等于1000毫秒,注意要用long型
...
long end = System.currentTimeMillis(); //获取当前时间的毫秒值
System.out.println(end - start);
System.exit(1); //非0状态是异常终止,退出jvm
f0000or(int i = 0; i < 100; i++) {
new Demo();
System.gc(); //运行垃圾回收器,一般配合类来使用
}
class Demo { //在一个源文件中不允许定义两个用public修饰的类,public修饰的类只能定义在自己的类文件中
public void finalize() {
System.out.println("垃圾被清扫了");
}
}
BigInteger b1=new BigInteger("100");
BigInteger b2=new BigInteger("2");
System.out.println(b1.add(b2)); //大数加法
System.out.println(b1.subtract(b2)); //大数减法
System.out.println(b1.multiply(b2)); //大数乘法
System.out.println(b1.divide(b2)); //大数除法
BigInteger[] arr=b1.divideAndRemainder(b2); //大数除法加取模
System.out.println(arr[0]); //商
System.out.println(arr[1]); //余
BigDecimal bd3 = new BigDecimal("2.0"); //通过构造中传入字符串的方式,开发时推荐
BigDecimal bd4 = new BigDecimal("1.1");
System.out.println(bd3.subtract(bd4));
BigDecimal bd1 = BigDecimal.valueOf(2.0); //这种方式在开发中也是推荐的
BigDecimal bd2 = BigDecimal.valueOf(1.1);
System.out.println(bd1.subtract(bd2));
Date类的概述是util包下的,不能导入sql包的
Date d1 = new Date(); //如果没有传参数代表的是当前时间
Date d2 = new Date(0); //如果构造方法中参数传为0代表的是1970年1月1日
Date d3=new Date(long num);
d1.setTime(1000); //设置毫秒值,改变时间对象
System.out.println(d1.getTime()); //通过时间对象获取毫秒值
System.out.println(System.currentTimeMillis()); //通过系统类的方法获取当前时间毫秒值
//DateFormat df = new DateFormat(); //DateFormat是抽象类,不允许实例化
DateFormat df1 = DateFormat.getDateInstance(); //相当于父类引用指向子类对象,右边的方法返回一个子类对象
Date d = new Date(); //获取当前时间对象
SimpleDateFormat sdf = new SimpleDateFormat(); //默认格式为:88-6-6 下午9:31
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//创建日期格式化类对象
System.out.println(sdf.format(d)); //将日期对象转换为字符串
String str = "2000/08/08 08/08/08";
Date d = sdf.parse(str); //将时间字符串转换成日期对象
System.out.println(d);
Calendar c = Calendar.getInstance(); //父类引用指向子类对象
System.out.println(c.get(Calendar.YEAR)); //通过字段获取年
System.out.println(c.get(Calendar.MONTH)); //通过字段后期月,但是月是从0开始编号的
System.out.println(c.get(Calendar.DAY_OF_MONTH)); //月中的第几天
System.out.println(c.get(Calendar.DAY_OF_WEEK)); //周日是第一天,周六是最后一天
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
c.set(2000, 7, 8); //设置年月日
c.add(Calendar.MONTH, -1); //对指定的字段进行向前减或向后加
c.set(Calendar.YEAR, 2000); //修改指定字段