成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Java 中優(yōu)雅地分割 String 字符串

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

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

[[393207]]

使用方法

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 指定的則是分割的份數(shù),舉個例子就明白了

  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 

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

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

設(shè)置分隔符與分割后右側(cè)的結(jié)果相連,

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

機智的你可能已經(jīng)發(fā)現(xiàn)了,其實分割方法的精妙之處,全在于正則表達式 regex 的設(shè)置,正則表達式還是要好好學習的!

妙用正則表達式

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

  1. public class SplitExample { 
  2.     //\d代表數(shù)字,+代表出現(xiàn)一次或多次。所以(\\d+)-(\\d+)匹配用"-"相連的兩個數(shù)字串 
  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-");    // "-"右側(cè)的數(shù)字串為空,不匹配 
  23.         checkString("-4567");    // "-"左側(cè)的數(shù)字串為空,不匹配 
  24.         checkString("123-4567-890");    // 存在兩個"-",不匹配 
  25.     } 

上述程序的運行結(jié)果為:

責任編輯:趙寧寧 來源: 鴨哥聊Java
相關(guān)推薦

2022-12-06 08:27:50

Bash腳本字符串

2021-05-31 07:57:00

拼接字符串Java

2017-12-11 13:50:17

LinuxBash子字符串

2021-03-08 08:23:24

Java字符串截取

2021-11-07 07:51:01

JavaString字符串

2020-03-27 15:10:23

SpringJava框架

2020-09-25 11:30:20

Java判空代碼

2020-04-10 10:22:12

Java判空編程語言

2023-10-27 07:03:22

字符串String類型

2022-12-15 16:23:32

JavaScrip字符串開發(fā)

2024-12-05 10:29:13

Rust字符串類型

2009-08-07 14:15:21

C#字符串分割

2010-11-26 10:43:48

MySQL分割字符串

2023-12-15 09:49:54

回溯解決組合問題數(shù)組

2022-04-01 12:51:44

命令Containerd

2023-10-20 15:58:27

Python刪除指定字符

2023-05-12 14:14:00

Java線程中斷

2021-03-24 10:20:50

Fonts前端代碼

2025-03-28 08:34:34

2020-08-25 08:56:55

Pythonawk字符串
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 天天干天天干 | 久久久久国产一区二区 | 国产天堂 | 区一区二在线观看 | 欧美成人视屏 | 综合自拍| 亚洲欧洲在线视频 | 亚洲福利网站 | 亚洲高清在线 | 国产一在线观看 | 欧美性受xxx | 国产一区999 | 国产精品区一区二区三 | 日本一区二区高清不卡 | 992tv人人草 久久精品超碰 | 中文字幕日韩欧美一区二区三区 | 亚洲 欧美 另类 综合 偷拍 | 日韩精品一二三 | 天天影视综合 | www.毛片 | 成年人精品视频 | 北条麻妃视频在线观看 | 日韩电影中文字幕 | 一区二区三区四区五区在线视频 | 看特级黄色片 | 欧美激情精品久久久久久变态 | 国产成人精品午夜视频免费 | 成人欧美一区二区三区在线播放 | 日韩1区| 91久久夜色精品国产网站 | 中文字幕在线一区二区三区 | 欧美一区二区小视频 | 91久久久精品国产一区二区蜜臀 | 久久久久精| 日本免费黄色一级片 | 99精品国自产在线 | 自拍视频网站 | 天堂精品| 久99久视频| 黄色在线| 亚洲国产欧美91 |