Date和String转换,正则表达式

1.
Date和String类型的相互转换 
中间转换要用的一个桥梁(SimpleDateFormat)
//Date向String转换(格式化)
		Date d = new Date();//创建日期对象
		SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//创建SimpleDateFormat对象 指定模式
		//使用SimpleDateFormat中的format方法进行日期对象的格式化
		String s = sd.format(d);
		System.out.println(s);//2017-08-01 17:20:35

  作用:
  SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
 
   Date日期对象--->以字符串表示的String 
 
  public final String format(Object obj)格式化一个对象以生成一个字符串

  要使用DateFormat这个类:但是抽象类了,使用子类进行实例


  String(日期的文本格式)---->Date日期对象:解析
   public Object parseObject(String source)解析字符串的文本,生成Date。  

//String向Date转换(解析)
		 String s2 = "2018-2-3";
		 SimpleDateFormat sd2 = new SimpleDateFormat("yyyy-MM-dd");
		 Date d2 = sd2.parse(s2);//会抛出一个解析异常
		 System.out.println(d2);//Sat Feb 03 00:00:00 CST 2018


2.
正则表达式
正则表达式语法:


字符:

x 字符x; a 表示字符'a'
\\ 反斜线字符 
\t 制表符 ('\u0009')
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D') 
字符类

[abc] a、b 或 c(简单类)

[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范


围  
[a-zA-Z_0-9] 里面包含大写字母或者小写字母或者数字字符

预定义字符:
. 任何字符 QQ:919092924@qq.com


\. 转义 (本身就表示一个.)
\d 数字:[0-9] [0-9]--->\d(不正确)   \


\d(代码中正确的写法)
\w 单词字符:[a-zA-Z_0-9] 
java语言单词组成的一些规则需要\\w
边界匹配器
       ^ 行的开头
       $ 行的结束
       \b 单词边界
hello world?haha;Xixi 
Greedy 数量词 
X? X,一次或一次也没有  :x出现1次或者0次
X* X,零次或多次 :x出现0次或多次
X+ X,一次或多次 :x出现1次或多次
X{n} X,恰好 n 次 :x恰好出现n
X{n,} X,至少 n 次 :x至少出现n次
X{n,m} X,至少 n 次,但是不超过 m 次 
2.1
判断是不是qq号   第一位不能为0;最多14位
import java.util.Scanner;
public class Demo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String line = sc.next();
		boolean flag = check(line);
		System.out.println(flag);
	}
	public static boolean check(String line){
		String guize = "[1-9][0-9]{4,14}";
		return  line.matches(guize);//matches 方法 返回true或false
	}
}

2.2
String类中有一个方法和正则表达式有关系
 
  public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串
public static void main(String[] args) {
		//定义一个字符串
		String s = "18-24" ;
		
		//public String[] split(String regex)根据给定正则表达式的匹配拆


分此字符串
		String[] strArray = s.split("-") ;
		
		//如何获取int类型的年龄呢
		//Integer.pareInt(String s) ;将一个字符串类型转换成int类型
		int startAge = Integer.parseInt(strArray[0]) ;
		int endAge = Integer.parseInt(strArray[1]) ;
		
		//可以键盘录入一个年龄
		Scanner sc = new Scanner(System.in) ;
		
		//录入并接收数据
		System.out.println("请输入要一个年龄:");
		int age = sc.nextInt() ;
		
		//判断
		if(age>=startAge && age<=endAge){
			System.out.println("这符合需求...");
		}else{
			System.out.println("不搭理...");
		}
	}
}	

2.3
String类中的另一个和正则相关的方法:
  public String replaceAll(String regex,String replacement):
             使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。             

public class RegexDemo {
	public static void main(String[] args) {
		//定义一个字符串
		
		String s = "helloworld123456Java78290" ;
		
		//将数字不显示出来或者显示*号
		//给数字定义正则:
		String regex = "\\d+" ;
		String ss = "*" ;
		
		//public String replaceAll(String regex,String replacement):
		String result = s.replaceAll(regex, ss) ;
		
		System.out.println("result:"+result);
	}
}

3.
Random:产生一个随机数的类:
 
  构造方法:
  public Random()创建一个新的随机数生成器,
  public Random(long seed)使用单个 long 种子创建一个新的随机数生成器
  
  成员方法:
  public int nextInt():指定的范围是int类型的本身的范围
  public int nextInt(int n):获取的随机数是[0,n)之间的值


获取任意范围内的随机数
                  int number = (int)(Math.random()*(end-start+1) +start)  ;
4.
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 
 
  字段:
  public static final double E
  public static final double PI
  成员方法:
  public static int abs(int a):绝对值
  public static double ceil(double a):向上取整
public static double floor(double a):向下取整
  public static double pow(double a, double b):a的b次幂
  public static int max(int a,int b):求最大值
  public static double random():获取一个随机数:[0.0,1.0)
public static long round(double a):四舍五入
  public static double sqrt(double a):正平方根
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值