2012-01-24 143 views
2

我有一個字符串是這樣的:提取字符串文本到另一個字符串

String text = number|name|url||number2|name2|url2

現在我已經寫了一個循環

int initialiaze = 0; 
for(i = initialize; i > text.length(); i++) { 
    //do the work 
} 

在這個循環中我想提取number一個字符串, name爲一個字符串,url爲一個字符串,如果我達到||做了一個動作(例如,將這三個字符串插入到db)如果這個動作完成,再次開始提取number2name2url2轉換爲字符串並執行操作。

這可能嗎?你能告訴我如何?我沒有明白。

+2

看看StringTokenizer http://stackoverflow.com/questions/2356251/string-tokenizer-in-java和http://www.java-samples.com/showtutorial.php?tutorialid=236 –

+0

是'|'分隔符在字面上,還是你顯示,只是爲了說明分裂? – Dallas

+0

我添加了分隔符,因爲我認爲它們將有助於分割字符串。 :) – Leandros

回答

6

您可以使用.split()字符串的方法。

String[] bigParts = myString.split("\\|\\|"); 
for(String part : bigParts) 
{ 
    String[] words = part.split("\\|"); 
    //save to db or what you want 
} 
+0

+1我剛剛發佈相同的東西。 – Squonk

+0

我忘了逃避'|'字符)),但已經修復。 – shift66

+0

會有一個理由去與一個(.split()與令牌化)在另一個? – Dallas

3

爲你的情況

StringTokenizer stPipe = null; 
    StringTokenizer stDblPipe = null; 
    String firstPipeElement=null; 
    stPipe = new StringTokenizer(text, "|");   
    if (stPipe.hasMoreElements()) 
    { 
     firstPipeElement= stPipe.nextElement().toString(); 
    ....... 
    if(firstPipeElement.equals("||")) 
     { 
     stDblPipe = new StringTokenizer(firstPipeElement , "||"); 
    ..... 

     } 
    } 

希望這有助於

+0

什麼是firstPipeElement?另一串你只能忘記? – Leandros

+0

。修復。抱歉。 –

1

Java是不是我的語言,但值得一試,

String text = number|name|url||number2|name2|url2 
String[] temp; 
String[] temp2; 
int i ; 
temp = text.split("\\|\\|") 
for(i=0;i<temp.length();i++){ 
temp2 = temp[i].split("\\|"); 
String no = temp2[0]; 
String name = temp2[1]; 
String url = temp2[2]; 

// Do processing with no, name, url 

} 

我希望,這將有助於

+0

編輯您的答案並轉義'|'字符。並且已經將單引號改爲double('||' - >「\\ | \\ |」) – shift66

+0

感謝@Ademiban指出它並將其編輯。 只是出於好奇(我不知道Java),不會逃跑而不逃跑?此外,如果它將是一個單一的字符,java會有單引號還是雙引號? 因爲在C#中,text.Split('|')可以,並且它沒有任何字符串分割。 – Jashwant

+0

現在你的答案是正確的:)不,在Java中只有兩個拆分方法,並且都將參數作爲文本而不是單個符號,所以即使只有一個符號,也必須將文本放入雙引號中。請參閱http://docs.oracle.com/javase/6/docs/api/java/lang/String.html – shift66

相關問題