java 讀取split_Java報錯系列——split

在String中,split方法如下:

bed18e972b393eaba18a4dd0764e8011.png

a7c7e82dec80eb473e44d15de003853b.png

可見,split的核心在于Pattern.compile(regex).split(this, limit);

Java提供Pattern,Matcher用于支持正則,可以看一個例子:

24633b667772b93ad1207c4d61bade99.png

運行結果是:

0,1

||

3,4

|ab|

7,8

|cef|

8,9

||

11,12

|kk|

13,14

|a|

需要注意的是:

通過Pattern給定一個模式(regex),Matcher可以不斷(find)匹配文本,并能找到每

一個匹配上的內容的開始(start),結束(end)索引【結束索引說白了,就是start+匹配

文本的長度】。

subSequence(begin,end)是一個“包頭不包尾”的方法

問題:

在上面的while中,我們能到達的最大的索引處,就是最后一個end,而注意到很有可能

這個end之后還有內容,那么該如何處理呢?

如果一個正則將文本split成了幾部分,我們只需要一部分呢?

如果分成的部分中有“”空字符串,split又是如何處理的?

我們可以帶著這些問題來看看源碼:

d4cd0a5c2c5c5610be3e96a8dfbacd15.png

d86da84c56bde856d63505f9113c1d43.png

首先來看,limit對matchLimited的影響:

limit < 0 或者 split(regex)等價于split(regex,0) ?==> ?matchLimited:false

limit > 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ==> ?matchLimited:true

其實,while的意思就是說,如果limit>0的話,matchList只加入有限的內容。

如果整個文本沒有匹配上,那么返回一個長度為1,內容為其本身的數組。

如果limit為0,那么會將最后匹配的那些空串刪除掉直至非空串為止在返回結果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258123.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258123.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258123.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VS2012生成事件

Visual Studio 事件生成功能對我們開發綜合項目的過程中尤為重要。 下面以VS2012為例&#xff1a; 選擇工程-> 屬性->編譯->生成事件 包括兩個生成事件&#xff1a;預先生成事件和后期生成事件 直接在相應的文本框里編寫寫腳本即可&#xff0c;如&#xff1a;編譯完成…

H3C Navigate 2017 | 拉近世界的距離 新華三的泛聯接版圖

就今天而言&#xff0c;聯接世界的網絡外延已經無限擴大&#xff0c;聯接的方式也越來越復雜。從互聯網時代的PC互聯&#xff0c;演進到移動互聯網時代手機等移動終端的互聯&#xff0c;而即將大規模爆發的物聯網應用時代&#xff0c;所有的事物都可能被連入網絡&#xff0c;一…

java gc log調優_Java 開啟 gc 日志

構建一個 jar 包程序使用 Spring Boot 構建一個簡單的 web 程序&#xff0c;可以直接使用 java -jar 來啟動。RestControllerRequestMapping("/root")SpringBootApplicationpublic class SbDemoApplication {public static void main(String[] args) {SpringApplicat…

大數據時代的公共安全治理

未來&#xff0c;大數據將成為社會基礎設施的一部分&#xff0c;跟公路、自來水、電一樣&#xff0c;成為人們生活不可或缺的一部分。但大數據的作用并不僅僅局限于為普通消費者提供生活必須服務&#xff0c;它已經開始在信息產業、公共安全、交通運輸、金融、水利等領域中發揮…

CCNA第二講筆記

網絡定義&#xff1a;一組由介質&#xff08;線纜&#xff09;互聯的網絡設備&#xff08;路由器、交換機&#xff09;和終端系統&#xff08;PC&#xff09;&#xff1b; 工作組&#xff1a;局域網范疇&#xff0c;范圍最小的局域網&#xff0c;且不涉及網絡設備。臺式機需要有…

晶科電力打造山東省最大物流港分布式光伏項目

近日&#xff0c;晶科電力有限公司宣布&#xff0c;由該公司投建的山東省最大物流港分布式光伏項目已破土動工&#xff0c;成為山東省又一標志性光伏項目。 該項目裝機量為6兆瓦&#xff0c;占用物流港廠房屋頂面積約68330平方米&#xff0c;平均每年發電量約601.22萬kWh&#…

服務器資源管理器視圖的添加顯示的步驟

MVC視圖查看數據庫表結構時&#xff0c;通常會打開服務器資源管理器視圖&#xff0c;在服務器資源管理器視圖中能查看表的數據集及表結構 打開的方法為&#xff1a; ①可使用快捷鍵&#xff1a; ctrlaltS ②也可添加“服務器資源管理器視圖”到“視圖”工具菜單&#xff0c;做法…

java中怎么用代碼打出ASCII碼字符_JAVA實現打印ascii碼表代碼

我就廢話不多說了&#xff0c;大家還是直接看代碼吧~package com.jalor;public class AAAA {public static void main(String[] args) {outputA(65);outputA(97);}// 打印ascii碼表public static void outputA(int count){for (int i 0; i < 26; i) {System.out.print((cha…

javascript this指針指向?

前言 理解javascript的指針就需要先了解js的執行環境和作用域&#xff01;執行環境的定義了變量或函數有權訪問的其他數據&#xff0c;決定了它們各自的行為。每個執行環境都有一個與之關聯的變量對象&#xff0c;環境中定義的所有的變量和函數都保存在這個對象中。雖然我們編寫…

能源局將提高光伏“領跑者”項目技術指標

記者從權威渠道獲悉&#xff0c;國家能源局正計劃對光伏“領跑者”中有關單多晶的轉換效率標準等細節進行修改。“領跑者”計劃中&#xff0c;光電轉換效率的修訂工作將在今年3月底展開&#xff0c;主要向各大相關機構、企業征求意見&#xff0c;如果爭議較多&#xff0c;定稿時…

phpize增加php模塊

一&#xff0c;phpize的好處 什么時候我們要用phpize呢&#xff1f;我們在安裝php時&#xff1a; ./configure --prefix/usr/local/php --with-mysql/usr/local/mysql --with-zlib-dir --with-freetype-dir/usr --with-jpeg-dir/usr --with-png-dir/usr --enable-gd-native-ttf…

java安全權限配置_使用Spring安全表達式控制系統功能訪問權限問題

一、SPEL表達式權限控制從spring security 3.0開始已經可以使用spring Expression表達式來控制授權&#xff0c;允許在表達式中使用復雜的布爾邏輯來控制訪問的權限。Spring Security可用表達式對象的基類是SecurityExpressionRoot。表達式函數描述hasRole([role])用戶擁有指定…

SlidingMenu的使用,結合Fragment(eclipse環境)

首先下載SlidingMenu&#xff0c;有Library和Sample&#xff0c;然后在自己的項目中引入類庫&#xff08;引入智慧北京工作空間的Library&#xff09;&#xff0c;然后V4包會發生沖突&#xff0c;刪掉自己項目Libs目錄下的V4包即可 側滑布局和主界面布局都先用一個空布局填充一…

log4j日志文件配置說明及使用

一.log4j.properties文件格式說明&#xff1a; log4j.rootLoggerinfo, stdoutlog4j.appender.stdoutorg.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layoutorg.apache.log4j.PatternLayout# Pattern to output the callers file name and line number.log4j.appende…

java如何做全局緩存_傳智播客JNI第七講 – JNI中的全局引用/局部引用/弱全局引用、緩存jfieldID和jmethodID的兩種方式...

講解JNI中的全局引用/局部引用/弱全局引用、緩存jfieldID和jmethodID的兩種方式&#xff0c;并編寫兩種緩存方式的示例代碼。1.從Java虛擬機創建的對象傳到本地C/C代碼時會產生引用&#xff0c;根據Java的垃圾回收機制&#xff0c;只要有引用存在就不會出發該引用指向的Java對象…

起一卦,還是那個破事。還是大兇。

公元&#xff1a;2013年6月20日11時48分46秒 陽3局農歷&#xff1a;2013年05月12日11時48分芒種&#xff1a;2013-6-5 20:44:00 小暑&#xff1a;2013-7-7 7:09:00干支&#xff1a;癸巳年 戊午月 丁巳日 丙午時 旬空&#xff1a;午未空 子丑空 子丑空 寅卯空直符&#…

老工業基地調整改造與振興

老工業基地調整改造與振興 一、運用“兩只手”&#xff0c;加快工業結構調整 一方面&#xff0c;運用市場機制即“看不見的手”進行調整。通過市場競爭機制、價格波動機糾、供求均衡機制、優勝劣汰機制等&#xff0c;實現資源的合理流動和優化配置。 另一方面&#xff0c;運用宏…

如何使用DNS反向映射來掃描IPv6地址?

目前增加的IPv6地址空間不僅提高了對啟發式算法的使用&#xff08;執行IPv6地址掃描時&#xff09;&#xff0c;而且還推動了人們探索替代技術用于查找IPv6節點。本文中我們將探討如何使用一種極其強大的向量來發現IPv6節點&#xff1a;使用DNS反向映射。 IPv6地址掃描攻擊通常…

java jre下載安裝教程_java JRE下載、安裝以及環境變量教程

java JRE下載、安裝以及環境變量教程作者:小丸子 來源:PC下載網時間:2017-10-17 19:12:33JRE也就是(Java Runtime Environment)Java運行環境&#xff0c;是運行JAVA程序所必須的環境的集合&#xff0c;包含各種類庫。今天PC下載網小編為您介紹jre的下載 安裝 跟環境變量的配置1…

java環境變量設置與java查看安裝路徑

把jdk安裝到計算機中之后&#xff0c;我們來進行設置使java環境能夠使用。 首先右鍵點我的電腦。打開屬性。然后選擇“高級”里面的“環境變量”&#xff0c;在新的打開界面中的系統變量需要設置三個屬性“JAVA_HOME”、 “path”、“classpath”,其中在沒安裝過jdk的環境下。p…