正则表达式,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 ; 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";
    //获取三个字符的字符串
    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
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值