加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式,Math,Random,system,BigInteger,BigDecimal,Data/D

发布时间:2020-12-14 04:21:10 所属栏目:百科 来源:网络整理
导读:1. 正则表达式 (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:预

1.正则表达式

(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)正则表达式的应用

A:判断功能

public boolean matches(String regex)

例如: String regax = "w+@w{2,6}(.w{2,3})+";

return s.matches(regax);

B:分割功能

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])}

C:替换功能

public String replaceAll(String regex,String replacement)

使用给定的 replacement 替换此字符串所有匹配给定的 正则表达式的子字符串。

例子: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是日期类,可以精确到毫秒。

A:构造方法

Data()

Data(long time)

B:成员方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读