stringsplitjava
❶ 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中string的split功能,分割空格失敗
publicclassTest{
publicstaticvoidmain(String[]args){
Stringstring="12345";
String[]arr=string.split("");
for(Strings:arr){
System.out.println(s);
}
}
}
我用上面的代碼試了下,可以。望點贊
❸ 關於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));
}
}
❹ 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")。
(5)stringsplitjava擴展閱讀:
Java中split使用注意事項:
1、要被分解的String對象或文字,該對象不會被split方法修改。
2、字元串或正則表達式對象,它標識了分隔字元串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字元串的單一元素數組。
3、該值用來限制返回數組中的元素個數(也就是最多分割成幾個數組元素,只有為正數時有影響)。
4、split 方法的結果是一個字元串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。separator不作為任何數組元素的部分返回。
❻ Java中split函數,如何通過String[]截取
|方法:String[] items = res.split(">=|<=|!=|=|>|<");
Java中Split函數的用法技巧:
在java.lang包中也有String.split()方法,與.net的類似,都是返回是一個字元型數組,但使用過程中還有一些小技巧。如執行:
String str = "1|23|4|56|7"
String[] arr = str.split("|"
(
i = 0; i < arr.length; i++
}
❼ 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中的string的用法總結,比如有indexof,split等
這個在剛剛學習的時候經常會忘記這些,沒有關系,實際應用的時候再認真去查
1、方法Indexof返回第一次找到目標,如果沒有找到就返回-1,指定位置往回找
String str1="cdesada"
str1.indexOf("cde");
2、從當前字元中抽取子字元串
方法substring
-substring(int beginIndex) //從beginIndex開始直接到結束
3、/返回長度7
str.length();
4、split
Split(Char()) 返回的字元串數組包含此實例中的子字元串
5、equals()
字元串的比較方法
6、 int hashCode()
返回此字元串的哈希碼。
7、 int indexOf(int ch)
返回指定字元在此字元串中第一次出現處的索引。
8、 int compareTo(String anotherString)
按字典順序比較兩個字元串。
9、字元串拼接,
方法concat,拼接兩個字元串,返回一個新的字元串,源字元串不會修改
S1.concat(s2) //等同於s1=s1+s2
10、 boolean contains(CharSequence s)
當且僅當此字元串包含 s 的指定序列時,才返回 true。
11、 int lastIndexOf(int ch)
返回最後一次出現的指定字元在此字元串中的索引。
等等很多,這幾個比較常見
❾ java split("||")字元串分割
String[] strs = str.split("\\|\\|");
就可以了。|在正則表達式里表示或者的意思,轉一下就好了。