導航:首頁 > 編程語言 > stringsplitjava

stringsplitjava

發布時間:2022-04-28 15:22:58

java String split的問題

Java String.split()用法總結
split: 1, 可以使用正則表達式, 2 注意: |,., &, *, + 是轉義字元, 要加\\
第一種方法: string s=abcdeabcdeabcde; string[] sArray=s.Split('c') ; foreach(string i in sArray) Console.WriteLine(i.ToString()); 輸出下面的結果: ab deab deab de 第二種方法: 我們看到了結果是以一個指定的字元進行的分割。使用另一種構造方法對多個字元進行分割: string s="abcdeabcdeabcde"; string[] sArray1=s.Split(new char[3]{'c','d','e'}) ; foreach(string i in sArray1) Console.WriteLine(i.ToString()); 可以輸出下面的結果: ab ab ab 第三種方法:除了以上的這兩種方法以外,第三種方法是使用正則表達式。新建一個控制台項目。然後先添加 using System.Text.RegularExpressions; System.Text.RegularExpressions string content=agcsmallmacsmallgggsmallytx; string[]resultString=Regex.Split(content,small,RegexOptions.IgnoreCase) foreach(string i in resultString) Console.WriteLine(i.ToString()); 輸出下面的結果: agc mac ggg ytx 第四種方法: string str1=我*****是*****一*****個*****教*****師; string[] str2; str1=str1.Replace(*****,*) ; str2=str1.Split(*) ; foreach(string i in str2) Console.WriteLine(i.ToString()); 第五種方法: string str1=我**是*****一*****個*****教*****師; 我希望顯示的結果為:我是一個教師。我如果採用上面的第四種方法來做就會產生下面的錯誤:我是一個教師。中間有空格輸出,所以輸出結果並不是希望的結果,這就又回到了正則表達式了,這時可以採用下面的第五種方法: string str1=我**是*****一*****個*****教*****師; string[] str2 = System.Text.RegularExpressions.Regex.Split(str1,@[*]+); foreach(string i in str2) Console.WriteLine(i.ToString()); 這里通過[*]+ 巧妙的完成了我們的目標。 我在應用中用到一些,給大家總結一下,僅供大家參考: 1、如果用「.」作為分隔的話,必須是如下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split("."); 2、如果用「|」作為分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|"); 「.」和「|」都是轉義字元,必須得加"\"; 3、如果在一個字元串中有多個分隔符,可以用「|」作為連字元,比如:「acount=? and uu =? or n=?」,把三個都分隔出來,可以用String.split("and|or"); PS: 原來 「&」也是一個特殊字元,需要寫成String.split("\\&")的形式。

今天在使用String.split方法分隔字元串時碰到一個問題,就是用:"***.***".split(".")把文件的名字和後綴分開的時候,這個函數竟然不起作用,很是納悶,後來才知道有些字元不能直接用的,分隔符如果用到一些特殊字元,比如 "| " ,"*",等否則會出現問題。現結合網上的資料總結如下:
public String[] split(String regex)
Splits this string around matches of the given regular expression.
參數regex是一個 regular-expression的匹配模式而不是一個簡單的String,他對一些特殊的字元可能會出現你預想不到的結果,比如測試下面的代碼:
(1) 用豎線 | 分隔字元串,你將得不到預期的結果
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\\|"); 這樣才能得到正確的結果
for (int i = 0 ; i <aa.length ; i++ ) {
System.out.println("--"+aa);
}
(2)用豎 * 分隔字元串運行將拋出java.util.regex.PatternSyntaxException異常,用加號 + 也是如此。
String[] aa = "aaa*bbb*ccc".split("*");
//String[] aa = "aaa|bbb|ccc".split("\\*"); 這樣才能得到正確的結果
for (int i = 0 ; i <aa.length ; i++ ) {
System.out.println("--"+aa);
}
(3)顯然,+ * 不是有效的模式匹配規則表達式,用"\\*" "\\+"轉義後即可得到正確的結果。
(4) "|" 分隔串時雖然能夠執行,但是卻不是預期的目的,"\\|"轉義後即可得到正確的結果。
(5)還有如果想在串中使用""字元,則也需要轉義.首先要表達"aaaa\bbbb"這個串就應該用"aaaa\\bbbb",如果要分隔就應該這樣才能得到正確結果:
String[] aa = "aaa\\bbb\\bccc".split(\\\\);
(6) 還有就是點號".",也要首先轉義才能得到正確的結果。

② Java split方法

java中String的split方法有兩個,

  1. split(Stringregex) 根據給定正則表達式的匹配拆分此字元串。例如:將下列字元串以「a」分割,


    其中:limit來限制被分割後數組的元素個數;

③ java string.split的問題

所謂「自動添加\t"並不存在,java不會自動添加。
原因很可能是你原文中有不止一個\t,比如\t\t\t導致分割後不滿意
string temp[]=line.split("\\s+"); //條件改成正則,視多個白字元為分隔符

④ java中string的split功能,分割空格失敗

這里有可能是中文全形的空格,屬於特殊字元,\\s 是匹配不了的。 對應的ascii 值 為160.
驗證方法:
int a = 160;
char c = (char)a;
String s = String.valueOf(c);
String[] strb1=str1.split(s);
如果能拆分,就確定是這個問題。
當然有個解決方法是 替換: strb11 = strb1.replaceAll(String.valueOf((char)160), " ");
然後就可以按照你之前的方式處理了

⑤ Java中split函數,如何通過String[]截取

spit函數只有兩個重載的方法

傳入分割正則

沒有傳數組的 ,返回值是數組

res="a1b1c1";
Stringitems=res.spit("1");//按1切分,返回數組包含a,b,c三個元素

⑥ java String.split處理字元串

那就得使用正則表達式來拆分了。

代碼如下

publicclassTest{
publicstaticvoidmain(Stringargs[]){
Stringstr="123,456999/sdsd";
Stringarray[]=str.split("[,\/\s]");
for(inti=0;i<array.length;i++){
System.out.println(array[i]);
}
}
}

輸出結果:
123
456
999
sdsd

⑦ Java的split()是怎麼拆分字元串的

java拆分字元串使用string類的spilt方法,針對某個分隔符來分割一個字元串,示例如下:
public class StringSplit {
public static void main(String[] args) {
String sourceStr = "1,2,3,4,5";//一個字元串
String[] sourceStrArray = sourceStr.split(",");//分割出來的字元數組
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}

// 最多分割出3個字元串
int maxSplit = 3;
sourceStrArray = sourceStr.split(",", maxSplit);
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
}
}
輸出結果為:

2
4
1
3,4,5

⑧ Java中split的用法

Java中split主要用於分隔字元串。

具體分析如下:

1、如果用「.」作為分隔的話,必須是如下寫法,String.split("\."),這樣才能正確的分隔開,不能用String.split(".")。

2、如果用「|」作為分隔的話,必須是如下寫法,String.split("\|"),這樣才能正確的分隔開,不能用String.split("|"),「.」和「|」都是轉義字元,必須得加"\"。

3、如果在一個字元串中有多個分隔符,可以用「|」作為連字元,比如,「acount=? and uu =? or n=?」,把三個都分隔出來,可以用String.split("and|or")。

(8)stringsplitjava擴展閱讀:

Java中split使用注意事項:

1、要被分解的String對象或文字,該對象不會被split方法修改。

2、字元串或正則表達式對象,它標識了分隔字元串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字元串的單一元素數組。

3、該值用來限制返回數組中的元素個數(也就是最多分割成幾個數組元素,只有為正數時有影響)。

4、split 方法的結果是一個字元串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。separator不作為任何數組元素的部分返回。

⑨ java的String類的split方法為何能生成空值

spilt是正則表達式中的一種,用來切分欄位,如果切分的欄位連續出現,就會生成空值。
用法為:字元串.spilt("特定字元"),輸出結果為String[]類型。
如:String [] list = "abbcabcabc".spilt("b");
那麼結果就是「a」,"","ca","ca","c";
獲取結果可以通過:list.get(下標)的形式(從0開始),如:list.get(1) 的結果就是「」(空值)。

⑩ 關於Java中String對象的split方法



importjava.util.Arrays;

publicclassYuGiOh
{
publicstaticvoidmain(String[]args)
{
Stringplan="Answer.java";
Stringregex="\.";
String[]array=plan.split(regex);
System.out.println(Arrays.toString(array));
}
}

閱讀全文

與stringsplitjava相關的資料

熱點內容
數學奇跡神奇運演算法 瀏覽:359
大廠的程序員的水平如何 瀏覽:700
遺傳演算法入門經典書籍 瀏覽:878
源碼炮台腳本 瀏覽:620
在位編輯命令 瀏覽:347
曲式分析基礎教程pdf 瀏覽:14
php生成靜態html頁面 瀏覽:964
怎麼分割pdf 瀏覽:812
壓縮垃圾報警器 瀏覽:628
小公司一般都用什麼伺服器 瀏覽:967
java獲取時間gmt時間 瀏覽:820
為什麼csgo一直連接不到伺服器 瀏覽:504
安卓登ins需要什麼 瀏覽:836
機器人演算法的難點 瀏覽:226
全自動化編程 瀏覽:726
程序員高薪限制 瀏覽:693
壓縮圖片壓縮 瀏覽:75
美國發明解壓魔方 瀏覽:302
電腦怎麼備案網上伺服器 瀏覽:515
旅行商問題Python寫法 瀏覽:952