java學習--常用類及正則表示式
宣告:由於學習所用環境為JDK1.8,所有java程式碼均在JDK1.8環境中測試通過,如果環境發生變化,可能會發生錯誤!
一、常用類
1、Math類
(1)Math 類提供了一序列基本數學運算和幾何函式的方法。
Math類是final類,並且它的所有成員變數和成員方法都是靜態的。
(2)Math類的常用屬性和方法
a、靜態常量--PI:圓周率的double值
b、靜態方法:
2. Random類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);
Random類的物件可以生成“偽隨機數”。
常用方法:
(1)public int nextInt(int bound)
返回從0(包含)到bound(不包含)的一個“偽隨機” 整數值。
(2)public boolean nextBoolean()
返回一個“偽隨機”的boolean值
3. System類Random ran=new Random(); int result=ran.nextInt(16)+3; System.out.println("隨機返回3到18的數字:"+result); System.out.println("隨機返回boolean值:"+ran.nextBoolean());
成員變數
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代表正常退出,非零代表異常退出。使用該方法可以在圖形介面程式設計中實現程式的退出功能等。
gc()方法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); //正常退出程式
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是查詢出了多少條資料