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

1.正则表达式

(1)符合一定规则的字符串。

(2)正则表达式规则

  A:字符

x 表示 字符x。

\\ 反斜线字符。

\n 换行符。

\r 回车符。

  B:字符类

[abc]  a,b,c(简单类)

[^abc] 除a,b,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 ; xlength ; 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";
    //获取三个字符的字符串
    String regex = "\\b\\w{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())
    {
        System.out.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(int status)

C:获取当前时间的毫秒值

     public static long currentTimeMillis()

D:数组赋值

   public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

5.BigInteger

(1)针对大整数的运算

(2)构造方法

A:BigInteger(String s )

(3)成员方法

A:加 add

B:减 subtract

C:乘multiply

D:除 divide

E:商,余数

public BigInteger[] divideAndRemainder(BigInteger val)

返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。

 

6.BigDecimal

(1)浮点数据做数据,会丢失精度,所以,针对浮点数据用该类。

(2)构造方法

A:BigDecimal(String s)

(3)成员方法

A:加

B:减

C:乘

D:除

E:自己保留小数几位

public BigDecimal divide(BigDecimal divisor,

                         int scale,

                         RoundingMode roundingMode)

 

6.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.in);
int year = sc.nextInt();
Calendar c = Calendar.getInstance();

c.set(year,2,1);
c.add(Calendar.DATE,-1);
System.out.println(c.get(Calendar.DATE));

注意一般的月份是从0开始的这里设置的时间年月日为:year-3-1

 

 

你可能感兴趣的:(Java)