正则表达式,Math,Random,system,BigInteger,BigDecimal,Data/DataFormat,Calender
1.正则表达式
@H_502_11@(1)符合一定规则的字符串。
(2)正则表达式规则
A:字符
x 表示 字符x。
\\ 反斜线字符。
\n 换行符。
\r 回车符。
B:字符类
[abc] a,b,c(简单类)
[^abc] 除a,c的任意字符
[a-zA-Z]a-z A-Z两头的字符包括在内
[0-9] 0-9字符都包括
C:预定义字符类
. 表示任意字符。 “.”字符本身用“\.”表示。
\d 代表数字:[0-9]
\w 代表单词字符:[a-zA-Z_0-9]
\W :[^w]
D:边界匹配器
^ 代表行的开头
$ 代表行的结尾
\b 代表单词边界(就是不是单词字符的地方)
E:Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次 (包括一次)
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
硬盘上的路径应该用\\代替\,所以在正则表达式中应该用”\\\\。
(3)正则表达式的应用
public boolean matches(String regex)
例如: String regax = "\\w+@\\w{2,6}(\\.\\w{2,3})+";
return s.matches(regax);
public String[] split(String regex)
例子:String s ="91,27,46,28,50";
String[] arry = s.split(" ")
int[] arr = new int[arry.length]
//将字符数组转成int数组for(int x=0 ; x<arry.length x++){arr[x] = Integer.parseInt(arry[x])}
public String replaceAll(String regex,String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的 正则表达式的子字符串。
@H_502_416@例子:String s= "qqqqqqqq22222wwwedecs34565xcdc"String regex = "\\d+"String ss = ""String result = s.replaceAll(regex,ss)System.out.println(result);
D:获取功能(Pattern和Matcher类的使用)
典型的调用顺序是
Pattern p = Pattern.compile("a*b");
(*的意思是零次或多次)
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
例子:
public static void main(String[] args)String s = "da jia ting wo shuo bu xia wan zi xi"//获取三个字符的字符串bw{3}b"//把规则编译成模式对象Pattern p = Pattern.compile(regex)//通过模式对象得到匹配器对象Matcher m = p.matcher(s)//通过find方法查找,得到的是匹配的每一个子序列//boolean b = m.find();//System.out.println(b);//如何的到值呢?//group方法,// 返回由以前匹配操作所匹配的输入子序列。 (注意,在group之前必须先调find)while(m.find()).println(m.group())}}
2.Math类
(1)Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
(2)常见方法
A:abs 绝对值
B:ceil 向上取整
C:floor 向下取整
D:max 最大值
E:min 最小值
F:pow 一个数的多少次方
G:round 四舍五入(数字加1/2然后取整)
H:sqrt 平方根
(3)获取任意范围的随机数
(int) (Math.Random()*(end - start +1) ) + start;
3.Random
(1)用于产生随机数的类
(2)构造方法
A:Randrom() 默认种子(当前时间的毫秒值),每次产生的随机数不同
B:Random(long seed)指定种子,每次返回的随机数相同
(3)成员方法
A:int nextInt() 返回int范围内的随机数
B:int nextInt(int n)返回[0,n)以内的随机数(注意范围)
4.System
(1)系统类,提供一些有用的字段及方法。
(2)成员方法
A:运行垃圾回收器
public static void gc()
B:退出jvm
public static void exit(intstatus)
C:获取当前时间的毫秒值
public static long currentTimeMillis()
D:数组赋值
public static void arraycopy(Objectsrc,
intsrcPos,
Objectdest,
intdestPos,
intlength)
5.BigInteger
(1)针对大整数的运算
(2)构造方法
A:BigInteger(String s )
(3)成员方法
A:加 add
B:减 subtract
C:乘multiply
D:除 divide
E:商,余数
public BigInteger[] divideAndRemainder(val)
返回包含 (this / val)后跟 (this % val)的两个 BigInteger 的数组。
6.BigDecimal
(1)浮点数据做数据,会丢失精度,所以,针对浮点数据用该类。
(2)构造方法
A:BigDecimal(String s)
(3)成员方法
A:加
B:减
C:乘
D:除
E:自己保留小数几位
BigDecimaldividedivisor,
intscale,0); font-size:12.0000pt">RoundingModeroundingMode)
Data/Dataformat
(1)Data是日期类,可以精确到毫秒。
Data()
Data(long time)
getTime()
setTime(long time)
C:日期和毫秒值的相互转换
a.Data - 毫秒值
先创建Data对象d,然后long time= d.getTime();
b.毫秒值-Data
d.setTime(1000);
(2)DataFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDataFormat
A:SimpleDataFormat(String pattern)给定模式
yyyy-MM-dd HH:mm:ss
B:日期和字符串之间的转换
a.Data-String
Format()
b.String - Data
parse()
7.Calander
(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
(2)如何得到一个日历对象?
Calendar c = Calendar.getInstance();
其本质是返回Calender的子类对象
(3)成员方法
A:得到现在的年份,月份,日
int year = c.get(Calendar.YEAR);
B:根据日历字段值和一个正负数值来确定添加还是减去日历字段值
c.add(Calendar.DATE,-1);
C:设置日历对象的年月日
c.set(2016,11,23);
例子:计算任意一年的二月有多少天
Scanner sc = new Scanner(System.inyear = sc.nextInt()Calendar c = Calendar.getInstance()
c.set(year21c.add(Calendar.DATE-.println(c.get(Calendar.DATE));
注意:一般的月份是从0开始的,这里设置的时间年月日为:year-3-1