国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JAVA】包裝類、正則表達式、Arrays類、Lambda表達式

這篇具有很好參考價值的文章主要介紹了【JAVA】包裝類、正則表達式、Arrays類、Lambda表達式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 包裝類

包裝類是8種基本數(shù)據(jù)類型對應的引用類型

作用:后期的集合和泛型不支持基本類型,只能使用包裝類

基本數(shù)據(jù)類型和其對應的引用數(shù)據(jù)類型的變量可以互相賦值

基本數(shù)據(jù)類型 引用數(shù)據(jù)類型

byte

Byte

short

Short

int

Integer

long

Long

char

Character

float

Float

double

Double

boolean Boolean
  • 包裝類的變量默認值可以是null,容錯率更高
  • 可以把基本類型的數(shù)據(jù)轉換成字符串類型(調用 基本數(shù)據(jù)類型的變量.toString()或Integer.toString(基本數(shù)據(jù)類型的變量)得到字符串)
  • 可以把字符串類型的數(shù)值轉換成真實的數(shù)據(jù)類型
//將字符串類型的整數(shù)轉為int型
int a = Integer.parseInt(“字符串類型的整數(shù)”);
int a2 = Integer.valueOf(“字符串類型的整數(shù)”);
//將字符串類型的小數(shù)轉為double型
double b = Double.parseDouble(“字符串類型的小數(shù)”);
double b2 = Double.valueOf(“字符串類型的小數(shù)”);

2 正則表達式

字符類(默認匹配一個字符)

[abc] 只能是a, b, c
[^abc]? 除了a, b, c之外的任何字符
[a-zA-Z]? az AZ,包括(范圍)
[a-d[m-p]] ad,或m通過p:([a-dm-p]聯(lián)合)
[a-z&&[def]]? d, e, f(交集)
[a-z&&[^bc]] az,除了bc:([ad-z]減法)
System.out.println("a".matches("[abc]")); // true
System.out.println("z".matches("[abc]")); // false
System.out.println("ab".matches("[abc]")); // false
System.out.println("ab".matches("[abc]+")); //true

預定義的字符類(默認匹配一個字符)?

.?

任何字符

\d?

一個數(shù)字: [0-9]

\D?

非數(shù)字: [^0-9]

\s?

一個空白字符: [ \t\n\x0B\f\r]

\S?

非空白字符: [^\s]

\w 或 [a-zA-Z_0-9]

英文、數(shù)字、下劃線
\W 或?[^\w] 一個非單詞字符

量詞(多個字符)

X???

X一次或根本沒有

X*

X零次或多次

X+?

X一次或多次

X {n}?

X正好n

X {n, }?

X至少n
X {n,m}? X至少n但不超過m
// 驗證手機號
boolean p = phoneNumber.matches("1[3-9]\\d{9}");

?public String replaceAll(String regex,String newStr)

按照正則表達式匹配的內容進行替換

public String[] split(String regex)

按照正則表達式匹配的內容進行分割字符串,反回一個字符串數(shù)組。

// 將字符串里的字母替換成a
String name = "昨天lllll再見bye";
String na = name.split("\\w+", 'a')  // 昨天a再見a
// 遇見字符串里的字母分割
String[] naArr = name.split("\\w+") // [昨天,再見]
/* 正則表達式獲取信息 */

String rs = "明天你好,我是今天電話123-12322424,郵箱" +
        "123@qq.com,電話13512345678,0203232323" +
        "郵箱123@qq.com,123-123-1234 ,1231231234";

// 需求:從上面的內容中獲取電話號碼和郵箱。

// 1.規(guī)則
String regex = "(\\w{1,}@\\w{2,10}(\\.\\w{2,10}){1,2})|" + "(1[3-9]\\d{9})|(0\\d{2,5}-?\\d{5,15})|400-?\\d{3,8}-?\\d{3,8}";

// 2.編譯正則表達式成為一個匹配規(guī)則對象
Pattern pattern = Pattern.compile(regex);

// 3.通過匹配規(guī)則對象得到一個匹配數(shù)據(jù)內容的匹配器對象
Matcher matcher = pattern.matcher(rs);

// 4.通過匹配器去內容中爬取出信息
while(matcher.find()){
    System.out.println(matcher.group());
}

3 Arrays類

數(shù)組操作工具類,操作數(shù)組元素

public static?String?toString?(類型[]?a)

返回數(shù)組內容的字符串字符串,形狀還是數(shù)組形狀,類型是字符串

public static?void?sort?(類型[]?a)

對數(shù)組進行默認升序排序,無返回值

public static?<T>?void?sort?(類型[]?a, Comparator<? super T>?c)

使用比較器對象自定義排序

public static?int?binarySearch?(int[]?a, int?key)

二分搜索數(shù)組中的數(shù)據(jù),在排好序的數(shù)組a種查找key,存在返回索引,不存在返回-1

排序

public static?void?sort?(類型[]?a)

對數(shù)組進行默認升序排序

public static?<T>?void?sort?(類型[]?a, Comparator<? super T>?c)

使用比較器對象自定義排序

// 自定義數(shù)組降序排,僅支持引用數(shù)據(jù)類型
Integer[] a = [1,3,5,9]
Arrays.sort(a, new Comparator<Integer>(){
    @Override
    public int compare(Integer a1, Integer a2){
        return a2 - a1;
        // 因為返回值必須是整數(shù),若比較的值是浮點型,可以下面這個寫法
        // return Double.compare(a2, a1)
    }
});

4 Lambda表達式

簡化函數(shù)式接口的匿名內部類的寫法

(匿名內部類被重寫方法的形參列表) -> {
   被重寫方法的方法體代碼。
}

函數(shù)式接口:

  • 必須是接口,并且接口中有且僅有一個抽象方法
  • 通常我們會在接口上加上一個@FunctionalInterface注解,標記該接口必須是滿足函數(shù)式接口。
public class LambdaDemo1 {
    public static void main(String[] args) {
        goSwimming( new Swimming() {
            @Override
            public void swim() {
                System.out.println("游泳");
            }
        } );
    }
    public static void goSwimming(Swimming swimming) {
        swimming.swim();
    }
}

簡化后 swim()

public class LambdaDemo1 {
    public static void main(String[] args) {
        goSwimming( () -> {
	System.out.println("游泳") } );
        
    }
    public static void goSwimming(Swimming swimming) {
        swimming.swim();
    }
}
// 自定義數(shù)組降序排,僅支持引用數(shù)據(jù)類型
Integer[] a = [1,3,5,9]
/**
Arrays.sort(a, new Comparator<Integer>(){   
    @Override
    public int compare(Integer a1, Integer a2){
        return a2 - a1;    
});
**/
// 簡化后
Arrays.sort(a,(Integer a1, Integer a2) -> {
        return a2 - a1;    
});

表達式的省略寫法文章來源地址http://www.zghlxwxcb.cn/news/detail-647248.html

  • 參數(shù)類型可以省略不寫。
  • 如果只有一個參數(shù),參數(shù)類型可以省略,同時()也可以省略。
  • 如果Lambda表達式的方法體代碼只有一行代碼??梢允÷源罄ㄌ柌粚?同時要省略分號
  • 如果Lambda表達式的方法體代碼只有一行代碼。可以省略大括號不寫。此時,如果這行代碼是return語句,必須省略return不寫,同時也必須省略runturn語句的分號
// 簡化后
Arrays.sort(a,(a1, a2) -> a2 - a1);

到了這里,關于【JAVA】包裝類、正則表達式、Arrays類、Lambda表達式的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【C++干貨鋪】C++11新特性——lambda表達式 | 包裝器

    【C++干貨鋪】C++11新特性——lambda表達式 | 包裝器

    ========================================================================= 個人主頁點擊直達:小白不是程序媛 C++系列專欄:C++干貨鋪 代碼倉庫:Gitee ========================================================================= 目錄 C++98中的排序 lambda表達式 lambda表達式語法 表達式中的各部分說明 lambda表達式的使

    2024年01月21日
    瀏覽(47)
  • 進階JAVA篇- Lambda 表達式與 Lambda 表達式的省略規(guī)則

    進階JAVA篇- Lambda 表達式與 Lambda 表達式的省略規(guī)則

    目錄 ? ? ? ? 1.0 什么是 Lambda 表達式? ? ? ? ? 1.1 既然跟匿名內部類相關,先來回顧匿名內部類。 ? ? ? ? ?1.2 Lambda 表達式與匿名內部類之間的關系。 ? ? ? ? 1.3 函數(shù)式接口 ? ? ? ? 1.4 在具體代碼中來操作一下 ? ? ? ? 2.0?Lambda 表達式省略規(guī)則 ??????? ?Lambda 表達

    2024年02月08日
    瀏覽(29)
  • 【C++進階】C++11(下)可變參數(shù)模板&lambda表達式&包裝器

    【C++進階】C++11(下)可變參數(shù)模板&lambda表達式&包裝器

    我們緊接著上一節(jié)的講解來進行 C++11的新特性可變參數(shù)模板能夠讓您創(chuàng)建可以接受可變參數(shù)的函數(shù)模板和類模板,相比C++98/03,類模版和函數(shù)模版中只能含固定數(shù)量的模版參數(shù),可變模版參數(shù)無疑是一個巨大的改進。然而由于可變模版參數(shù)比較抽象,使用起來需要一定的技巧

    2024年04月11日
    瀏覽(31)
  • Lambda表達式(JAVA)

    Lambda表達式(JAVA)

    注:如果沒有學過 匿名內部類 和 接口 不推薦往下看。 (parameters) - expression 或 (parameters) -{ statements; } parameters:表示參數(shù)列表; -:可理解為“被用于”的意思; expression:表示一條語句; statements:表示多條語句。 Lambda可以理解為:Lambda就是匿名內部類的簡化。 lambda表達式

    2024年02月08日
    瀏覽(28)
  • Java- Lambda表達式

    目錄 一、Lambda簡介 二、Lambda使用前提 三、Lambda語法 1.操作符 a.\\\"-\\\" ?b.\\\"::\\\" 2.格式? a.無參數(shù) b.有參數(shù) 四、Lambda演化過程 五、Lambda實現(xiàn)排序 Lambda 表達式,也可稱為閉包,它是推動 Java 8 發(fā)布的最重要新特性。Lambda 允許把函數(shù)作為一個方法的參數(shù)(函數(shù)作為參數(shù)傳遞進方法中)

    2024年02月03日
    瀏覽(28)
  • Java Lambda表達式

    1.1 函數(shù)式編程思想概括 在數(shù)學中,函數(shù)就是有輸入量、輸出量的一套計算方案,也就是“拿數(shù)據(jù)做操作” 面向對象思想強調“必須通過對象的形式來做事情” 函數(shù)式思想則盡量忽略面

    2024年02月07日
    瀏覽(42)
  • Java Lambda 表達式

    Java Lambda 表達式

    ??wei_shuo的個人主頁 ??wei_shuo的學習社區(qū) ??Hello World ! Java Lambda 表達式是 Java 8 引入的一種函數(shù)式編程特性,它是一種輕量級的匿名函數(shù),允許我們將函數(shù)作為方法的參數(shù)進行傳遞。Lambda 表達式可以理解為是一種簡潔的方式來表示可傳遞的代碼塊,它可以替代傳統(tǒng)的匿名內

    2024年02月08日
    瀏覽(34)
  • java lambda表達式詳解

    java lambda表達式詳解

    我們知道,在Java中,接口是不能實例化的,但是接口對象可以指向它的實現(xiàn)類對象。如果接口連實現(xiàn)對象都沒有呢?那還可以使用匿名類的方式,如下: 復制 但是,使用匿名內部的方式,代碼量其實并不是非常簡潔,而為了使代碼更加的簡潔,Java引進了 Lambda 表達式的寫法,

    2024年02月03日
    瀏覽(34)
  • Java學習——lambda表達式

    Java學習——lambda表達式

    什么是Lambda表達式? 可以將Lambda表達式理解為一個匿名函數(shù); Lambda表達式允許將一個函數(shù)作為另外一個函數(shù)的參數(shù); 我們可以把 Lambda 表達式理解為是一段可以傳遞的代碼(將代碼作為實參),也可以理解為函數(shù)式編程, 將一個函數(shù)作為參數(shù)進行傳遞 。 為什么要引入Lambda表

    2024年02月04日
    瀏覽(38)
  • Java中的lambda表達式

    Java中的lambda表達式

    目錄 一、背景 二、lambada表達式的基本使用 三、變量捕獲 四、lambda在集合中的使用(map和set) 五、優(yōu)缺點 一、背景 (1)、lambda表達式的定義: (2)、lambda表達式的語法: (3)、函數(shù)式接口 二、lambada表達式的基本使用 (1)沒有使用lambda表達式,簡單調用函數(shù)式接口展

    2024年02月08日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包