国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java 11 已發(fā)布,String 還能這樣玩!

guqiu / 2621人閱讀

摘要:在文章正式發(fā)布,這個(gè)逆天新特性教你寫出更牛逼的代碼中,我有介紹到的八個(gè)新特性,其中關(guān)于加強(qiáng)部分,我覺得有點(diǎn)意思,這里多帶帶再拉出來講。是不是很好在將來肯定有武之地如批量讀取文件內(nèi)容到一個(gè)中,就能很好的識(shí)別行結(jié)束符了。

在文章《Java 11 正式發(fā)布,這 8 個(gè)逆天新特性教你寫出更牛逼的代碼》中,我有介紹到 Java 11 的八個(gè)新特性,其中關(guān)于 String 加強(qiáng)部分,我覺得有點(diǎn)意思,這里多帶帶再拉出來講。

Java 11 增加了一系列的字符串處理方法,如以下所示。

// 判斷字符串是否為空白
" ".isBlank();                // true

// 去除首尾空格
" Javastack ".strip();          // "Javastack"

// 去除尾部空格 
" Javastack ".stripTrailing();  // " Javastack"

// 去除首部空格 
" Javastack ".stripLeading();   // "Javastack "

// 復(fù)制字符串
"Java".repeat(3);             // "JavaJavaJava"

// 行數(shù)統(tǒng)計(jì)
"A
B
C".lines().count();    // 3

最有意思的是 repeatlines 方法了,來看下還能怎么玩!

repeat

repeat 方法的作用就是重復(fù)一個(gè)字符串 N 遍,可以用來代替工具類:org.apache.commons.lang3.StringUtils#repeat(java.lang.String, int),來看下 repeat 的源碼。

public String repeat(int count) {
    if (count < 0) {
        throw new IllegalArgumentException("count is negative: " + count);
    }
    if (count == 1) {
        return this;
    }
    final int len = value.length;
    if (len == 0 || count == 0) {
        return "";
    }
    if (len == 1) {
        final byte[] single = new byte[count];
        Arrays.fill(single, value[0]);
        return new String(single, coder);
    }
    if (Integer.MAX_VALUE / count < len) {
        throw new OutOfMemoryError("Repeating " + len + " bytes String " + count +
                " times will produce a String exceeding maximum size.");
    }
    final int limit = len * count;
    final byte[] multiple = new byte[limit];
    System.arraycopy(value, 0, multiple, 0, len);
    int copied = len;
    for (; copied < limit - copied; copied <<= 1) {
        System.arraycopy(multiple, 0, multiple, copied, copied);
    }
    System.arraycopy(multiple, 0, multiple, copied, limit - copied);
    return new String(multiple, coder);
}

來看下更多的用法。

String str = "Java";

// 小于0:java.lang.IllegalArgumentException
System.out.println(str.repeat(-2));

// 等于0:空白串("")
System.out.println(str.repeat(0));

// JavaJavaJava
System.out.println(str.repeat(3));

// java.lang.OutOfMemoryError
System.out.println(str.repeat(Integer.MAX_VALUE));

所以說 repeat 并不是可以無限增長(zhǎng)的,有使用限制的,達(dá)到一定量就會(huì)報(bào)內(nèi)存溢出異常。

lines
public Stream lines() {
    return isLatin1() ? StringLatin1.lines(value)
                      : StringUTF16.lines(value);
}

lines 方法返回一個(gè)字符串 Stream, 可以識(shí)別 換行符換行。

// 4
System.out.println("A
B
C
D".lines().count());

是不是很好?在將來肯定有武之地!如批量讀取文件內(nèi)容到一個(gè) Stream 中,就能很好的識(shí)別行結(jié)束符了。

本文原創(chuàng)首發(fā)于微信公眾號(hào):Java技術(shù)棧(id:javastack),關(guān)注公眾號(hào)在后臺(tái)回復(fù) "新特性" 可獲取更多,轉(zhuǎn)載請(qǐng)?jiān)瓨颖A舯拘畔ⅰ?/pre>

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/72660.html

相關(guān)文章

  • Java 12 騷操作, String居然還能這樣

    摘要:都快要來了,必須跟棧長(zhǎng)學(xué)起即將發(fā)布,新特性必須搶先看棧長(zhǎng)之前在技術(shù)棧微信公眾號(hào)分享過已發(fā)布,還能這樣玩這篇文章,介紹了的新玩法,讓大家耳目一新。更多關(guān)于的資訊干貨教程以及好消息,請(qǐng)關(guān)注微信公眾號(hào)技術(shù)棧,第一時(shí)間推送。 Java 13 都快要來了,12必須跟棧長(zhǎng)學(xué)起! Java 13 即將發(fā)布,新特性必須搶先看! 棧長(zhǎng)之前在Java技術(shù)棧微信公眾號(hào)分享過《Java 11 已發(fā)布,Stri...

    whidy 評(píng)論0 收藏0
  • Java多線程可以分組,還能這樣

    摘要:如圖所示,帶有的所有線程構(gòu)造方法都可以定義線程組的。線程組還能統(tǒng)一設(shè)置組內(nèi)所有線程的最高優(yōu)先級(jí),線程單獨(dú)設(shè)置的優(yōu)先級(jí)不會(huì)高于線程組設(shè)置的最大優(yōu)先級(jí)。 前面的文章,棧長(zhǎng)和大家分享過多線程創(chuàng)建的3種方式《實(shí)現(xiàn) Java 多線程的 3 種方式》。 但如果線程很多的情況下,你知道如何對(duì)它們進(jìn)行分組嗎? 和 Dubbo 的服務(wù)分組一樣,Java 可以對(duì)相同性質(zhì)的線程進(jìn)行分組。 來看下線程類 Th...

    biaoxiaoduan 評(píng)論0 收藏0
  • 面試問我 Java 逃逸分析,瞬間被秒殺了。。

    摘要:記得幾年前有一次棧長(zhǎng)去面試,問到了這么一個(gè)問題中的對(duì)象都是在堆中分配嗎說明為什么當(dāng)時(shí)我被問得一臉蒙逼,瞬間被秒殺得體無完膚,當(dāng)時(shí)我壓根就不知道他在考什么知識(shí)點(diǎn),難道對(duì)象不是在堆中分配嗎最后就沒然后了,回去等通知了。。 記得幾年前有一次棧長(zhǎng)去面試,問到了這么一個(gè)問題: Java中的對(duì)象都是在堆中分配嗎?說明為什么! 當(dāng)時(shí)我被問得一臉蒙逼,瞬間被秒殺得體無完膚,當(dāng)時(shí)我壓根就不知道他在考什么...

    CastlePeaK 評(píng)論0 收藏0
  • 到底什么是重入鎖,拜托,一次搞清楚!

    摘要:為什么叫重入鎖呢,我們把它拆開來看就明了了。釋放鎖,每次鎖持有者數(shù)量遞減,直到為止。 相信大家在工作或者面試過程中經(jīng)常聽到重入鎖這個(gè)概念,或者與關(guān)鍵字 synchrozied 的對(duì)比,棧長(zhǎng)面試了這么多人,80%的面試者都沒有答對(duì)或沒有答到點(diǎn)上,或者把雙重效驗(yàn)鎖搞混了,哭笑不得。。 那么你對(duì)重入鎖了解有多少呢?今天,棧長(zhǎng)幫大家撕開重入鎖的面紗,來見識(shí)下重入鎖的真實(shí)容顏。。 什么是重入鎖 ...

    LiuRhoRamen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

guqiu

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<