Date和String转换,正则表达式

来源:互联网 发布:类似于百度云的软件 编辑:程序博客网 时间:2024/05/29 19:39
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):正平方根