java split用多個標點拆分,並保留分隔符

2021-09-02 03:16:13 字數 2145 閱讀 6606

string split(string regex)

根據給定的正規表示式的匹配來拆分此字串。

注意:豎線"|" 要轉義寫成 "\\|",還有一些其他的特殊字元是需要轉義的 如 \\. \\? 等

1.用多個標點拆分

strs = str.split("[、,。;?!,.;?!]");

strs = str.split("、|,|。|;|?|!|,|\\.|;|\\?|!|]");

2.還想保留分隔符,

笨方法:在要拆分的標點後邊加乙個新的拆分符,用新的拆分符拆分

//這麼替換,是為了拆分後,還能儲存標點符號,//可再優化 

line = line.replaceall("、", "、|");

line = line.replaceall(",", ",|");

line = line.replaceall("。", "。|");

line = line.replaceall(";", ";|");

line = line.replaceall("?", "?|");

line = line.replaceall("!", "!|");

line = line.replaceall(",", ",|");

line = line.replaceall("\\.", ".|");

line = line.replaceall(";", ";|");

line = line.replaceall("\\?", "?|");

line = line.replaceall("!", "!|");

strs = line.split("\\|");

3.還想單獨保留分隔符,

自己寫了個方法,僅供參考:

用stringbuilder,乙個乙個字元的去拼。

phrase = new phrase(str,string.valueof(ch),l+1,++no);

phrase 是自定義類,第乙個引數是短句,第二個引數是分隔符

reader = new bufferedreader(new inputstreamreader(new fileinputstream(filepath),encoding)); //考慮到編碼格式  

string line;

stringbuilder sb;

//int num = 0; //總句碼

int l=0; //行序號

while((line = reader.readline()) != null)

if("、,。;?!,.;?!".indexof(ch) == -1) else

sb = new stringbuilder();} }

//後邊的沒標點的短句

str = sb.tostring();

if(str.length()>0)

l++;

}reader.close();

別人的解決方法

/*需要分割的文章*/  

string str = "第一句。第二句!第三句:第四句;第五句。";

/*正規表示式:句子結束符*/

string regex=":|。|!|;";

pattern p =pattern.compile(regex);

matcher m = p.matcher(str);

/*按照句子結束符分割句子*/

string words = p.split(str);

/*將句子結束符連線到相應的句子後*/

if(words.length > 0)

count++;

}

}

/*輸出結果*/

for(int index = 0; index < words.length; index++)

其他的:

替換中英文空格為空

line = line.replaceall("| ", "");

替換回車換行為空,注意中間寫的是或,因為有的只有乙個,有的順序不同

line = line.replaceall("\n|\r", "");

強制用Google Map顯示座標點

當我們需要在google map上顯示座標的時候,會通過下面的方法 string url square,ny intent i new intent intent.action view,url startactivity i 當我們啟動這個activity的時候,android系統會讓我們從bro...

用C 計算座標點的映象座標

假設p1,p2點 定義一條直線l,計算 p點 關於l的映象點。計算步驟 一 計算直線l的斜率k,和一般方程式 ax by c 0 中的a,b,c值 a,b,c 關係如下 由jennyvenus 提供 c k x1 y1 k b 1.0 c y1 k x1 a 1.0 b k 二 根據a,b,c的值 ...

vim用多個標籤頁開啟多個檔案

1 打 開 新 標 籤 頁 啟動 vim 時用 vim p filename tabe dit tabe tabedit tabnew tabnew 在當前標籤頁之後開啟帶空視窗的新標籤頁。tabe dit opt cmd tabnew opt cmd 開啟新標籤頁並編輯,其餘和 edit 類同。t...