1. 程式人生 > >java學習--常用類及正則表示式

java學習--常用類及正則表示式

宣告:由於學習所用環境為JDK1.8,所有java程式碼均在JDK1.8環境中測試通過,如果環境發生變化,可能會發生錯誤!

一、常用類

1、Math類
(1)Math 類提供了一序列基本數學運算和幾何函式的方法。
    Math類是final類,並且它的所有成員變數和成員方法都是靜態的

(2)Math類的常用屬性和方法

a、靜態常量--PI:圓周率的double值

b、靜態方法:

	      System.out.println("5的3次方為:"+Math.pow(5,3));
        System.out.println("9的平方根:"+Math.sqrt(9));
        System.out.println("-8.90的絕對值是:"+Math.abs(-8.90));
        System.out.println("8.4向上取整:"+Math.ceil(8.4));
        System.out.println("6.9向下取整:"+Math.floor(6.9));
        System.out.println("6.4四捨五入的結果:"+Math.round(6.4));
        System.out.println("8.5四捨五入的結果:"+Math.round(8.5));
        System.out.println("隨機返回一個從0.0(包括)到1.0(不包括)值:"+Math.random());
        int ran=(int)(Math.random()*10)+2;
        System.out.println("隨機返回2到11的數字:"+ran);
        System.out.println("圓周率是:"+Math.PI);
2. Random類
Random類的物件可以生成“偽隨機數”。
常用方法:
      (1)public int nextInt(int   bound)
      返回從0(包含)到bound(不包含)的一個“偽隨機”   整數值。
      (2)public boolean nextBoolean()
      返回一個“偽隨機”的boolean值
                Random ran=new Random();
		int result=ran.nextInt(16)+3;
		System.out.println("隨機返回3到18的數字:"+result);
		System.out.println("隨機返回boolean值:"+ran.nextBoolean());
3. System類
成員變數
System類內部包含in、out和err三個成員變數,分別代表標準輸入流(鍵盤輸入),標準輸出流(顯示器)和標準錯誤輸出流(顯示器)。
成員方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
int[] a = {1,2,3,4};
int[] b = new int[5];
System.arraycopy(a,1,b,3,2);
exit()方法
public static void exit(int status)

該方法的作用是退出程式。其中status的值為0代表正常退出,非零代表異常退出。使用該方法可以在圖形介面程式設計中實現程式的退出功能等。
                System.out.println("正常輸出標準資訊!");
		System.err.println("輸出標準錯誤資訊!");
		int[] a={1,5,6,9,4};
		int[] b=new int[5];
		System.arraycopy(a, 1,b,3, 2);
		for(int x:b){
			System.out.print(x+" ");
		}
		System.exit(0);  //正常退出程式
gc()方法
public static void gc()

該方法的作用是請求系統進行垃圾回收。至於系統是否立刻回收,則取決於系統中垃圾回收演算法的實現以及系統執行時的情況。
垃圾回收時,會先呼叫finalize()方法,釋放非java資源
public class Person {
    @Override
    protected void finalize() throws Throwable {
    	System.out.println("呼叫gc之前執行finalize");
    }
}
public class Finalizedemo {

	public static void main(String[] args) {
		Person person=new Person();
		person=null;
		System.gc();
		//System.out.println("123");
	}

}
currentTimeMillis方法
public static long currentTimeMillis()

以毫秒為單位返回從1970年1月1日午夜到當前時間的毫秒數
        long start=System.currentTimeMillis();
        long end=System.currentTimeMillis();
        System.out.println("耗時"+(end-start)+"毫秒");
4. Runtime類
作用:使應用程式與其執行的環境相關聯
通過使用getRuntime()靜態方法獲得例項。
exec(String command)在單獨的程序中執行指定的字串命令,該方法返回Process物件,使用Process物件的 destroy()方法可以殺掉程序
        Runtime rt= Runtime.getRuntime();
		rt.gc();    // 顯式請求JVM進行垃圾回收gc
        System.out.println("當前JVM的記憶體總量是:"+rt.totalMemory()+"位元組");
        System.out.println("JVM試圖使用的最大記憶體量:"+rt.maxMemory());   
        System.out.println("當前JVM的空閒記憶體量:"+rt.freeMemory());
        try {
			rt.exec("notepad");
			rt.exec("calc");
}
		} catch (IOException e) {
			e.printStackTrace();
		}
}
5. Date類與SimpleDateFormat類
Date類:表示日期和時間
提供操作日期和時間各組成部分的方法
SimpleDateFormat類
用於定製日期時間的格式
                Date date=new Date();
		System.out.println(date);
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String now=sdf.format(date);
		System.out.println(now);
6.  Calendar類:
  抽象類
  用於設定和獲取日期/時間資料的特定部分

Calendar類提供一些方法和靜態欄位來操作日曆

二、正則表示式
正則表示式(regex)是使用字串來描述、匹配一系列符合某個句法規則的字串
用途:匹配、切割、替換、獲取字串
正則表示式由一些普通字元和一些元字元組成。
1、常見元字元


郵箱的驗證:

public static void main(String[] args) {
		System.out.println("請輸入郵箱:");
	    Scanner scan=new Scanner(System.in);
	    String email=scan.next();
	    String regex="\\[email protected]\\w+.\\w+";
	    Pattern pattern=Pattern.compile(regex);
	    Matcher matcher=pattern.matcher(email);
	    if(matcher.matches()){
	    	System.out.println("輸入正確");
	    }else{
	    System.out.println("輸入錯誤");
	    }
	}

正則表示式的分組
public static void main(String[] args) {
		String string="hdjjfkfdmnjava111fhfkdjava222fhjjksckjava333";
		String regex="(java\\d+)";
		Pattern pattern=Pattern.compile(regex);
		Matcher matcher=pattern.matcher(string);
		while(matcher.find()){
			System.out.println(matcher.group(1));  //“1”表示正則表示式的第一個分組(正則表示式的()表示一個分組)
		}
	}
反向引用
public static void main(String[] args) {
	   String string="adhxyzxyzcjifjafxafxdhiuwsdrsdr";
	   /* 
	    * 在正則表示式中,\num代表“反向引用”第num個分組中的內容
	    */
	   String regex="([A-Za-z]{3})\\1";
	   Pattern pattern=Pattern.compile(regex);
	   Matcher matcher=pattern.matcher(string);
	   while(matcher.find()){
		   System.out.println(matcher.group(0));
	   }
“\”的幾種解釋:

1. 反斜線後面可以加特定字元,組成所謂的“轉義字元”。eg:  \n    \t  
2. 用於取消元字元的意義,使元字元變為普通字元。eg:  “\\” 代表”\”。
3. 用於組成正則表示式中的元字元。eg:  “\d” 在正則表示式中代表“匹配一個數字字元”。
2、Pattern類與Matcher類
    1. Pattern類與Matcher類都在java.util.regex包    中定義。
     2. Pattern類的物件代表正則表示式編譯之後的物件;Matcher類主要用於執行驗證
     3.Pattern類的主要方法:
        public static Pattern compile(String regex);
        public Matcher matcher(CharSequence input)
        Matcher類的主要方法:
        public boolean matches();
3、String類對正則表示式的支援
(1)public boolean matches(String regex)  判斷字串是否與給定的正則表示式匹配。
(2)public String replaceAll(String regex,String replacement)   字串替換
(3) public String[] split(String regex) 字串拆分

public static void main(String[] args) {
		String string1="helloabbbbbb12345";
		String string2="中國|加拿大|美國|墨爾本";
		System.out.println(string1.matches("hello\\w+"));//判斷字串是否與給定的正則表示式匹配
        System.out.println(string1.replaceAll("\\d","*"));//字串替換
        String[] array=string2.split("\\|");  //字串拆分
        for(String x:array){
    	   System.out.print(x+" ");
     }
補充:
     1.  正則表示式中的問號?有兩種作用:
          第一種作用:重複前面表示式0次或1次。
          第二種作用:在表示次數的元字元後加上?
                                代表取消預設的貪婪匹配模式,變為“非貪婪匹配模式”。
public class GreedyRegex {

	public static void main(String[] args) {
		String str="abbbbbbb";
		System.out.println("貪婪模式匹配: "+str.replaceAll("ab+","#"));    // "貪婪匹配"
		System.out.println("非貪婪模式匹配: "+str.replaceAll("ab+?","#"));

	}

}

三、列舉型別
1. 列舉型別使用一組常量值來表示特定的資料集合,該集合中資料的數目確定(通常較少),且這些資料只能取預先定義的值。
2. Java列舉型別均自動繼承java.lang.Enum類(該類繼承了Object類)。
宣告列舉型別:
[public] enum 列舉型別名稱{
     列舉物件1,列舉物件2,…,列舉物件n ;
}

eg:  public enum Color{
       RED,GREEN,BLUE;
}
3、獲取列舉物件的兩種方法:
方法一:取得單個列舉物件
                列舉.物件名

方法二:取得全部列舉物件
                列舉.values()
注意:列舉.values()返回的是一個物件陣列,  可以通過遍歷該物件陣列獲取所有列舉物件。
public enum SexEnum{
    
	MALE("我是男生",1), FEMALE("我是女生",0); // 列舉物件必須寫在第一行
	private String name;
	private int id;
	
	private SexEnum(){
	}
	
	// 列舉的構造方法必須是private
    private SexEnum(String name,int id){   
		this.name=name;
		this.id=id;
	}
    
    // 自定義的方法,通過id查詢列舉物件
    public static SexEnum findSexById(int id){
    	for(SexEnum sex:SexEnum.values()){
    		if(sex.id==id){
    			return sex;
    		}
    	}
    	return null;
    }
public class TestSex {

	public static void main(String[] args) {
		SexEnum sex=SexEnum.findSexById(1);
		System.out.println(sex);
		

	}

}




          
















相關推薦

java學習--常用表示式

宣告:由於學習所用環境為JDK1.8,所有java程式碼均在JDK1.8環境中測試通過,如果環境發生變化,可能會發生錯誤! 一、常用類 1、Math類 (1)Math 類提供了一序列基本數學運算和幾何函式的方法。     Math類是final類,並且它的所有成員變數和成員

JAVA 常用表示式、Math、Random、System、Date和Calendar+程式碼

一、知識點體系圖 二、程式碼演示及注意事項 (1)正則表示式的程式碼例項 public class Test4 { public static void main(String[] args) { // 需求:獲取下面這個字串中由三個字元

JAVA學習53_str.startsWith()與表示式

問題: 我想要str.startsWith(一個數字)的結果,我寫的:String patten = "[0-9]";String a="90832aviriver jfiejo";if(a.startsWith(patten)){System.out.print("rig

JAVA基礎之常用以及表示式,打基礎這些決不能少!

說到正則表示式,可能很多人想到的就是驗證之類的,沒錯,正則表示式作為一個驗證的方法或者說規則,只要是需要輸入和驗證的網站和app,沒有不需要使用正則表示式的,由此可以看出正則表示式的重要性。作為一個合格的程式設計師,正則表示式和執行緒、io流等是必須要知道的東西。 一、Math (1)

JavaSE_day9_常用API_Object_String_StringBuffer_表示式_Date_DateFormat_Calendar_基本資料型別包裝

1.Object類 是Java語言中的根類,即所有類的父類。它中描述的所有方法子類都可以使用。所有類在建立物件的時候,最終找的父類就是Object 方法: equals方法,用於比較兩個物件是否相同,它其實就是使用兩個物件的記憶體地址在比較。Object類中的equals方法內部使用的就

python爬蟲學習筆記6:表示式re庫

正則表示式 語法 常用操作符 re庫 import re re庫的主要功能函式 re.search() re.search(pattern,string,f

Java工具】----表示式校驗工具

/** * @Title: RegexValidateUtil.java * @Package org.csun.nc.util * @Description: TODO * @author chisj [email protected] * @da

Linux 常用命令sed/awk/grep表示式

sed 主要功能 sed,stream editor。是一個”非互動式“字元流編輯器。輸入流通過程式並輸出到標準輸出端。 sed主要用來自動編輯一個或者多個檔案(替換,插入,刪除,追加,更改) 常見應用 抽區域匹配正則表示式比較域增加,附加,替換 執行過程 sed一次處理一行或多行內容。處理時,把

JS學習(六)表示式

//3.使用正則表示式   //建立一個正則表示式有兩種方式,一種是藉助 RegExp 物件來建立,另一種方式是使  用正則表示式字面量來建立   //字面量   //var regex&n

文字處理表示式

文字處理及正則表示式 檔案檢視 檔案檢視命令: cat,tac,rev cat [OPTION]… [FILE]… cat -E:顯示行結束符$ -n:對顯示出的每一行進行編號 -A:顯示所有控制符 -b:非空行編號 -s:壓縮連續的空行成一行 ta

Elasticsearch中的萬用字元表示式查詢

想要在ES中使用*或者?作為萬用字元進行模糊匹配? 看這篇就對了~ 本文為轉發!!! 轉自:https://blog.csdn.net/dm_vincent/article/details/42024799 wildcard查詢和prefix查詢類似,也是一個基於詞

Python爬蟲學習必備知識點:表示式模組詳解

一、基礎語法總結 1.1、匹配單個字元 a . d D w W s S [...] [^...] 匹配單個字元(.) 規則:匹配除換行之外的任意字元 In [24]: re.findall("f.o","foo is not fao") Out[24]: ['foo',

從零開始學Python【2】--數值計算表示式

往期回顧: 從零開始學Python【1】--資料型別及結構 我們接著上一期的Python,繼續跟大家分享有關Python中常用的數值計算和正則表示式。 運算子 1)數值運算 +、-、*、/ % (求餘數) // (注意Python中的整除是

Python的學習筆記DAY10---關於表示式

        正則表示式用來匹配查詢文字和資料,簡單的說,是一些由字元和特殊符號組成的字串,描述了模式的重複或者表述多個字元。其能按照某種模式匹配一系列有相似特徵的字串。         Python中的正則表

Linux使用者組和許可權管理表示式

1、複製/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部檔案的屬組和其他使用者沒有任何訪問許可權。 [[email protected] ~]# cp -a /etc/skel /home/tuser1 [[email protected] ~]#

JAVA基礎(33)---表示式

正則表示式 什麼是正則表示式? 正則表示式(Regular Expression)就是符合一定規則的字串,它可以匹配特定的字串,方便進行字串的處理 正則表示式的規則 一、校驗數字的表示式       &n

Date、DateFormat、Calendar、Math、System、包裝表示式

  java.util.Date 日期類     基礎概念:       時間原點: 1970 1月 1日 00:00:00       1秒 = 1000毫秒     構造方法         public Date() 返回當前日期 當前日期=1970到現在所經歷過的毫秒值        

值得收藏的八個常用的js表示式

 開發中如果有input輸入框,難免就要寫正則表示式,因此在這裡總結了一些常見常用的正則表示式的書寫方法,希望會大家有所幫助; 附圖:   一.手機號碼 $(document).ready(function(){ //判斷輸入手機號碼是否正確

PHP常用的各種表示式

首先看下正則表示式思維導圖: 一、校驗數字的表示式  1 數字: ^[0-9]*$ 2 n位的數字: ^\d{n}$ 3 至少n位的數字: ^\d{n,}$ 4 m-n位的數字: ^\d{m,n}$ 5 零和非零開頭的數字: ^(0|[1-9][0-9]*)$ 6 非零開頭的

jmeter教程(八):關聯表示式提取器

所謂關聯,就在從前面請求的響應中提取資料,給後面的請求使用。而提取資料,則需要用到後置處理器裡的正則表示式提取器。為了演示,我簡單寫了一個java請求,模擬介面的響應資料 響應的資料為一個json,這是模擬介面查詢會員列表的資料。time是查詢資料花費的時間,count是查詢出了多少條資料