一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 如何在 Java 中優雅地分割 String 字符串

如何在 Java 中優雅地分割 String 字符串

2021-04-15 23:13鴨哥聊Java鴨哥 Java教程

相信很多同學都知道,String 類中的 split 方法可以進行字符串分割,然而日常使用起來卻僅限于 str.split( "-"),其中 "-"為分隔符。其實 split 方法的功能非常強大,可以更優雅地使用它分割字符串。

分割字符串Java 編程中常用的操作,相信很多同學都知道,String 類中的 split 方法可以進行字符串分割,然而日常使用起來卻僅限于 str.split( "-"),其中 "-"為分隔符。其實 split 方法的功能非常強大,可以更優雅地使用它分割字符串。

如何在 Java 中優雅地分割 String 字符串

使用方法

 

split 方法的一種聲明為,

  1. public String[] split(String regex) 

其中 regex 指的是正則表達式分隔符,我們平時使用單個字符作為分隔符,其實可以看作特殊的正則表達式,特殊之處在于這種表達式只匹配它自身,如 "-" 只匹配 "-", 示例如下:

  1. String string = "86-15003455666"
  2. String[] parts = string.split("-"); 
  3. String part1 = parts[0]; // 86 
  4. String part2 = parts[1]; // 15003455666 

split 方法的另一個聲明為:

  1. public String[] split(String regex, int limit) 

regex 指的是 正則表達式分隔符,limit 指定的則是分割的份數,舉個例子就明白了

  1. String string = "004-556-42"
  2. String[] parts = string.split("-", 2);   // 限定分割兩份 
  3. String part1 = parts[0]; // 004 
  4. String part2 = parts[1]; // 556-42 

而在某些場景下,我們可能想要在結果中保留分隔符,這也是可以做到了設置分隔符與分割后左側的結果相連,

  1. String string = "86-15003455666"
  2. String[] parts = string.split("(?<=-)"); 
  3. String part1 = parts[0]; // 86- 
  4. String part2 = parts[1]; // 15003455666 

設置分隔符與分割后右側的結果相連,

  1. String string = "86-15003455666"
  2. String[] parts = string.split("(?=-)"); 
  3. String part1 = parts[0]; // 86 
  4. String part2 = parts[1]; // -15003455666 

機智的你可能已經發現了,其實分割方法的精妙之處,全在于正則表達式 regex 的設置,正則表達式還是要好好學習的!

妙用正則表達式

 

在實際的工作場景中,對于要分割的字符串,我們在分割之前,往往需要校驗下它的格式,只有符合我們的要求,我們才對它進行拆分處理。而使用 Pattern 類加 Matcher 類,可以使字符串的格式識別和分割操作一氣呵成:

  1. public class SplitExample { 
  2.     //\d代表數字,+代表出現一次或多次。所以(\\d+)-(\\d+)匹配用"-"相連的兩個數字串 
  3.     // Pattern 對象是正則表達式的編譯表示 
  4.     private static Pattern twopart = Pattern.compile("(\\d+)-(\\d+)"); 
  5.  
  6.     public static void checkString(String s) 
  7.     { 
  8.         // Matcher對象對輸入字符串進行解釋和匹配操作 
  9.         Matcher m = twopart.matcher(s); 
  10.         if (m.matches()) { 
  11.             //m.group(1) 和 m.group(2) 存儲分割后的子串 
  12.             System.out.println(s + " matches; first part is " + m.group(1) + 
  13.                     ", second part is " + m.group(2) + "."); 
  14.         } else { 
  15.             System.out.println(s + " does not match."); 
  16.         } 
  17.     } 
  18.  
  19.     public static void main(String[] args) { 
  20.         checkString("123-4567");  // 匹配 
  21.         checkString("s-tar");    // 字母序列,不匹配 
  22.         checkString("123-");    // "-"右側的數字串為空,不匹配 
  23.         checkString("-4567");    // "-"左側的數字串為空,不匹配 
  24.         checkString("123-4567-890");    // 存在兩個"-",不匹配 
  25.     } 

上述程序的運行結果為:

如何在 Java 中優雅地分割 String 字符串

原文地址:https://mp.weixin.qq.com/s?__biz=MzI2NTAzNzgxNw==&mid=2247504499&idx=1&sn=159a9653575fd3a95176e6b21d3b67b7&chksm=eaa1e0e5ddd669f32ffab4380a88ae4db1eef5805cde4962c97c93563029fc6ec29cd7698011&mpshare=1&s

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久毛片 | 特黄特黄一级片 | 精品国产自在现线拍400部 | 妇女澡堂淋浴性 | 日本成人黄色网址 | 成人免费网站视频ww | 精品视频中文字幕 | 四虎国产精品免费久久麻豆 | 国产日韩精品一区二区三区 | 成年人免费在线看的惊悚动作片 | 国产欧美一区二区三区久久 | jizz 日本亚洲| juliaann大战两个黑人 | 精品日韩一区二区三区 | 日本高清免费中文字幕不卡 | 性一交一无一伦一精一品 | 天仙tv微福视频 | 波多洁野衣一二区三区 | 欧美一级专区免费大片俄罗斯 | 国产日韩欧美在线一二三四 | 国产一区二区三区四 | 四虎成人免费大片在线 | 亚洲成av人片在线观看天堂无码 | 超碰成人在线播放 | 午夜伦午夜伦锂电影 | 丝袜护士强制脚足取精 | 性xxx免费视频 | 欧美帅老头oldmangay | 久久亚洲精品专区蓝色区 | 精品久久久久久影院免费 | 欧美黄站| 国产成人精品高清在线观看99 | www四虎影院 | 青青草国产免费国产是公开 | 国产三级自拍视频 | 久久成人a毛片免费观看网站 | 亚洲另类第一页 | 日本h片在线 | 色偷偷伊人 | 红杏劫 | 久久免费看少妇级毛片蜜臀 |