正则表达式
是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用
Pattern中的正则表达式匹配
public static boolean matches(String regex,
CharSequence input)编译给定的正则表达式,并尝试匹配给定的输入。
调用这种方便的方式的形式
Pattern.matches(regex, input);
常见对象:
* [abc] a、b 或 c(简单类)
* [^abc] 任何字符,除了 a、b 或 c(否定)
* [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
* [0-9] 0到9的字符都包括
* [a-z&&[^bc]]a到z,除了b和c(减法)
* [a-z&&[^b-d]a到z除了b到c
String s=new String(“123”)
用法"
String regex="[a-z]"
s.matches(regex);
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配) //符号.作为匹配的字符串应该为\\.
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r] // \x0B为s垂直制表符
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
^ 匹配字符串开始
$ 匹配字符串结束
\b 匹配字符串结束
\B 匹配不是字符串的结束
用之前要加一个\
数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
regex = “[abc]{1,5}”
正则表达式的分割功能
String中的split方法:
public String[] split(String regex)
String[] arr = s.split(x); //通过正则表达式切割字符串
正则表达式的替换功能
String s= “locat1fun2cool”
String regex = “\d”
String p=“easy”
String s2= s.replaceAll(regex,p);//把所有数字替换为easy
String s2= s.replaceFirst(regex,p);//把第一个数字替换为easy
正则表达式分组功能
捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B©)) 中,存在四个这样的组:
*
1 ((A)(B©))
2 (A
3 (B©)
4 ©
组零始终代表整个表达式。
之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的输入序列的每个子序列。捕获的子序列稍后可以通过 Back 引用在表达式中使用,也可以在匹配操作完成后从匹配器获取。
与组关联的捕获输入始终是与组最近匹配的子序列。如果由于量化的缘故再次计算了组,则在第二次计算失败时将保留其以前捕获的值(如果有的话)例如,将字符串 “aba” 与表达式 (a(b)?)+ 相匹配,会将第二组设置为 “b”。在每个匹配的开头,所有捕获的输入都会被丢弃。
用于匹配多个字符的组合
例如(abc)表示匹配abc字符串
(abc)\1+ //指abc出现一次到多次
pattern和Matcher概述
Pattern:
正则表达式的编译表示。
必须首先将正则表达式(指定为字符串)编译为此类的实例。 然后将所得的图案可以被用来创建一个Matcher对象可以匹配任意character sequences针对正则表达式。 执行匹配的所有状态都驻留在匹配器中,所以许多匹配者可以共享相同的模式
Matcher:
通过调用模式的matcher方法从模式创建匹配器。 创建后,可以使用匹配器执行三种不同类型的匹配操作:
matches方法尝试将整个输入序列与模式进行匹配。
lookingAt方法尝试将起始于输入序列的输入序列与模式进行匹配。
find方法扫描输入序列,寻找匹配模式的下一个子序列。
这些方法中的每一个返回一个指示成功或失败的布尔值
group()
返回与上一个匹配匹配的输入子序列。
pattern p= Pattern.compile(regex);//设定正则表达式
Matcher m = p .matcher(s);//对s字符串进行匹配
String s1=M.group();//获取匹配得到的字符串
Sysrem.out.println(s1);//打印匹配的字符串
Math类概述
A:Math类概述
* Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
- B:成员方法(常用)
- public static int abs(int a)
- public static double ceil(double a)//向上取整
- public static double floor(double a)//向下取整
- public static int max(int a,int b)
- public static double pow(double a,double b)
- public static double random()
- public static int round(float a)
- public static double sqrt(double a)
Random类
该类的实例用于生成伪随机数的流。 该类使用48位种子,其使用线性同余公式进行修改
:构造方法
* public Random()
* public Random(long seed)
成员方法:
int next(int bits) 生成下一个伪随机数。
boolean nextBoolean() 返回下一个伪随机数,从这个随机数发生器的序列中均匀分布 boolean值。
void nextBytes(byte[] bytes) 生成随机字节并将它们放入用户提供的字节数组中。
double nextDouble() 返回下一个伪随机数,从这个随机数发生器的序列中 0.0和 1.0之间的 double值 0.0分布。
float nextFloat() 返回下一个伪随机数,从这个随机数发生器的序列中 0.0和 1.0之间的 float值 0.0分布。
double nextGaussian() 从该随机数发生器的序列返回下一个伪随机数,高斯(“正”)分布 double值,平均值为 0.0 ,标准差为 1.0 。
int nextInt() 返回下一个伪随机数,从这个随机数发生器的序列中均匀分布 int值
括号内输入参数设置范围
System类
System类包含几个有用的类字段和方法。 它不能被实例化。
System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法
public static void gc()//执行垃圾回收器
public static void exit(int status)//退出jvm虚拟机
public static long currentTimeMillis()//返回以毫秒为单位的毫秒时间
pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
将指定源数组中的数组从指定位置复制到目标数组的指定位置
把src数组拷贝到dest数组,从destPos开始拷贝length长度
BigInteger类
A:BigInteger的概述
* 可以让超过Integer范围内的数据进行运算, BigInteger提供了所有Java的原始整数运算符和java.lang.Math中所有相关方法的类比。 此外,BigInteger还提供了模数运算,GCD计算,原始测试,初级生成,位操作以及其他一些其他操作的操作。
B:构造方法
* public BigInteger(String val)
C:成员方法
BigInteger abs()
返回一个BigInteger,它的值是此BigInteger的绝对值。
BigInteger add(BigInteger val)
返回值为 (this + val) 。
BigInteger and(BigInteger val)
返回值为 (this & val) 。
BigInteger andNot(BigInteger val)
返回值为 (this & ~val) 。
int bitCount()
返回与其符号位不同的BigInteger的二进制补码表示中的位数。
int bitLength()
返回此BigInteger的最小二进制补码表示中的位数, 不包括符号位。
byte byteValueExact()
将此 BigInteger转换为 byte ,检查丢失的信息。
BigInteger clearBit(int n)
返回一个BigInteger,其值等于此BigInteger,指定的位被清零。
int compareTo(BigInteger val)
将此BigInteger与指定的BigInteger进行比较。
BigInteger divide(BigInteger val)
返回值为 (this / val) 。
BigInteger[] divideAndRemainder(BigInteger val)
返回两个BigInteger的数组,其中包含 (this / val)后跟 (this % val) 。
double doubleValue()
将此BigInteger转换为 double 。
boolean equals(Object x)
将此BigInteger与指定的对象进行比较以实现相等。
BigInteger flipBit(int n)
返回一个BigInteger,其值等于此BigInteger,指定的位被翻转。
float floatValue()
将此BigInteger转换为 float 。
BigInteger gcd(BigInteger val)
返回一个BigInteger,其值是 abs(this)和 abs(val) 。
int getLowestSetBit()
返回此BigInteger中最右(最低位)一位的索引(最右边一位右侧的零位数)。
int hashCode()
返回此BigInteger的哈希码。
int intValue()
将此BigInteger转换为 int 。
int intValueExact()
将此 BigInteger转换为 int ,检查丢失的信息。
boolean isProbablePrime(int certainty)
返回 true如果这个BigInteger可能是素数, false如果它是绝对复合。
long longValue()
将此BigInteger转换为 long 。
long longValueExact()
将此 BigInteger转换为 long ,检查丢失的信息。
BigInteger max(BigInteger val)
返回此BigInteger和 val 。
BigInteger min(BigInteger val)
返回此BigInteger和 val 。
BigInteger mod(BigInteger m)
返回值为 (this mod m )。
BigInteger modInverse(BigInteger m)
返回值为 (this -1 mod m) 。
BigInteger modPow(BigInteger exponent, BigInteger m)
返回值为 (thisexponent mod m)的BigInteger 。
BigInteger multiply(BigInteger val)
返回值为 (this * val) 。
BigInteger negate()
返回值为 (-this) 。
BigInteger nextProbablePrime()
返回大于这个 BigInteger为 BigInteger的第一个整数。
BigInteger not()
返回值为 (~this) 。
BigInteger or(BigInteger val)
返回值为 (this | val) 。
BigInteger pow(int exponent)
返回值为 (thisexponent)的BigInteger 。
static BigInteger probablePrime(int bitLength, Random rnd)
返回一个正的BigInteger,它可能是素数,具有指定的位长度。
BigInteger remainder(BigInteger val)
返回值为 (this % val) 。
BigDEcimal
由于在运算的时候,float类型和double很容易丢失精度,演示案例。
* 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
不可变的、任意精度的有符号十进制数。
BigDecimal由任意精度整数未缩放值和32位整数级别组成
构造方法
* public BigDecimal(String val)//推荐(需要new)
通过构造时传入字符串的方式,获得精确数值
valueOf(double val) //推荐
转换一个 double成 BigDecimal ,使用 double通过所提供的规范的字符串表示 Double.toString(double)方法
Date类
java.util.Date
常用函数:
构造方法:
public Date()//返回当前时间
public Date(long date)//如果参数值为0代表1970年1月1日
成员方法:
public long getTime()//获取当前时间毫秒值
public void setTime(long time);//设置毫秒值,改变时间对象
SimpleDateFormat类实现日期和字符串的相互转换
* java.text.DateFormat
DateFormat类的概述
* DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat
使用父类引用指向子类对象:
DateFormat d1= DateFormat.getDateInstance();//生成一个SimpleDateFormat对象。
SimpleDateFormat构造方法
* public SimpleDateFormat()
* public SimpleDateFormat(String pattern)
成员方法
* public final String format(Date date)
SimpLeDateFormat sdf= new SimpLeDateFormat()//括号中可以给定格式来返回对应格式值 注意格式匹配
system.out.println(sdf.format(Date d));
* public Date parse(String source)
用于字符串转日期
String str=“000年0月0日”
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy年m月x日”)
Date d= sdf.parse(str)
Calendar类
Calendar是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Calendar c = Calendar.getInstance();//获取当前时间
获取年月日:
c.get(Calendar.YEAR);
c.get(Calendar.MONTH);//注意返回月份从0开始计算,应手动+1
c.get(Calendar.DAYE_OF_WEEK);
Calendar成员方法
* public void add(int field,int amount)//对Calendar获取的时间字段进行向前+或向后-
* public final void set(int year,int month,int date)//修改指定字段