日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java11已發(fā)布,String還能這樣玩!

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

成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計,對服務(wù)假山制作等多個行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報價服務(wù),我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

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

 
 
 
  1. // 判斷字符串是否為空白  
  2. " ".isBlank();                // true  
  3. // 去除首尾空格  
  4. " Javastack ".strip();          // "Javastack"  
  5. // 去除尾部空格   
  6. " Javastack ".stripTrailing();  // " Javastack"  
  7. // 去除首部空格   
  8. " Javastack ".stripLeading();   // "Javastack "  
  9. // 復(fù)制字符串  
  10. "Java".repeat(3);             // "JavaJavaJava"  
  11. // 行數(shù)統(tǒng)計  
  12. "A\nB\nC".lines().count();    // 3 

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

repeat

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

 
 
 
  1. public String repeat(int count) {  
  2.     if (count < 0) {  
  3.         throw new IllegalArgumentException("count is negative: " + count);  
  4.     }  
  5.     if (count == 1) {  
  6.         return this;  
  7.     }  
  8.     final int len = value.length;  
  9.     if (len == 0 || count == 0) {  
  10.         return "";  
  11.     }  
  12.     if (len == 1) {  
  13.         final byte[] single = new byte[count];  
  14.         Arrays.fill(single, value[0]);  
  15.         return new String(single, coder);  
  16.     }  
  17.     if (Integer.MAX_VALUE / count < len) {  
  18.         throw new OutOfMemoryError("Repeating " + len + " bytes String " + count +  
  19.                 " times will produce a String exceeding maximum size.");  
  20.     }  
  21.     final int limit = len * count;  
  22.     final byte[] multiple = new byte[limit];  
  23.     System.arraycopy(value, 0, multiple, 0, len);  
  24.     int copied = len;  
  25.     for (; copied < limit - copied; copied <<= 1) {  
  26.         System.arraycopy(multiple, 0, multiple, copied, copied);  
  27.     }  
  28.     System.arraycopy(multiple, 0, multiple, copied, limit - copied);  
  29.     return new String(multiple, coder);  

來看下更多的用法。

 
 
 
  1. String str = "Java";  
  2. // 小于0:java.lang.IllegalArgumentException  
  3. System.out.println(str.repeat(-2));  
  4. // 等于0:空白串("")  
  5. System.out.println(str.repeat(0));  
  6. // JavaJavaJava  
  7. System.out.println(str.repeat(3));  
  8. // java.lang.OutOfMemoryError  
  9. System.out.println(str.repeat(Integer.MAX_VALUE)); 

所以說 repeat 并不是可以***增長的,有使用限制的,達(dá)到一定量就會報內(nèi)存溢出異常。

lines

 
 
 
  1. public Stream lines() {  
  2.     return isLatin1() ? StringLatin1.lines(value)  
  3.                       : StringUTF16.lines(value);  

lines 方法返回一個字符串 Stream, 可以識別 \n 和 \r 換行符換行。

 
 
 
  1. // 4  
  2. System.out.println("A\nB\nC\rD".lines().count()); 

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


網(wǎng)站欄目:Java11已發(fā)布,String還能這樣玩!
文章路徑:http://www.5511xx.com/article/ccogjss.html