如果我有一個字符串,例如Java將字符串拆分爲彗形象差或0(零),後跟空格
s = "david,marko,rita,0 megan,0 vivian,law";
我需要這個字符串分割成
david
marko
rita
megan
vivian
law
我試圖用
String arr[] = s.split("[,\\s]");
但didn't工作。有什麼建議麼?
如果我有一個字符串,例如Java將字符串拆分爲彗形象差或0(零),後跟空格
s = "david,marko,rita,0 megan,0 vivian,law";
我需要這個字符串分割成
david
marko
rita
megan
vivian
law
我試圖用
String arr[] = s.split("[,\\s]");
但didn't工作。有什麼建議麼?
您可以使用此表達式:
String arr[] = s.split(",0?\\s*");
或甚至是:你要哪一個
String arr[] = s.split("[,0\\s]+");
是這個例子不清楚。
你的正則表達式是: 「(,0 |)」
那麼試試這個代碼:
public static void main(String[] args){
String s = "david,marko,rita,0 megan,0 vivian,law";
String[] ss = s.split("(,0 |,)");
for (int i = 0; i < ss.length; i++) {
String string = ss[i];
System.out.println(string);
}
}
只是一個建議 而是然後用多個值分裂試試這個
import java.util.*;
class test {
public static void main(String[] args) {
String s = "david,marko,rita,0 megan,0 vivian,law";
System.out.println(Arrays.toString(s.replace("0","").replace(" ","").split(",")));
}
}
你可以申請.replace只有一次的字符「0」 – 2013-03-14 08:16:49
它的工作原理:http://ideone.com/QQ02Oa – 2013-03-14 08:22:51
是的,它會工作,但這些是一些額外的代碼,沒有優化 – 2013-03-14 08:32:35
您可以試試這個:
public class SplitTest {
public static void main(String[] args) {
String inputString = "david,marko,rita,0 megan,0 vivian,law";
String splits[] = inputString.split(",0?\\s*");
for (String split : splits) {
System.out.println(split);
}
}
}
String[] arr = s.split(",(0\\s+)*");
正則表達式用逗號分割,後跟可選的0和一個或多個空格。
public static void main(String[] args) {
String s = "da0vid,marko,rita,0 megan,0 vivian,law";
String[] arr = s.split(",(0\\s+)*");
for (int i = 0; i < arr.length; i++)
System.out.println("'"+arr[i]+"'");
}
=>
'da0vid'
'marko'
'rita'
'megan'
'vivian'
'law'
你能擴展你的答案來解釋如何達到預期的結果嗎? – 2013-09-06 11:52:18
第二個選項不能用s =「da0vid,marko,rita,0 megan,0 vivian,law」;當我需要 da0vid 馬爾科 麗塔 梅根 – David 2013-03-15 15:34:27
的firts工作正常 – David 2013-03-15 16:11:28