2012-01-24 89 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

相关问题