2014-03-05 76 views
1

我有一個字符串"abc|def|123|456|xxx"。我需要根據分隔符的位置提取字符串的一個子集。邏輯是使用已知的分隔符"|"並選擇"|"分隔符的第二個字段。Java:從基於分隔符的字符串提取值

函數例如像這樣就足夠了。

語法:function.name(string,delimiter,field count)

例1:function.name("abc|def|123|456|xxx","|",2)

答案: 「DEF」

例2:function.name("abc|def|123|456|xxx","|",4)

答案: 「456」

+0

我們不會對這個網站爲你寫的代碼,我們回答您的代碼的問題。 「請幫助」不是一個問題。請告訴我們你已經嘗試了什麼,並說出什麼還不成功。我們可能會幫助你進一步。 – antonijn

+0

您可以使用javascript的.split()函數 –

回答

0

具有看看String.split函數:它幾乎是你想要的。所以:

( 「ABC | DEF | 123 | 456 | XXX」 .split( 「\ |」))[1] == 「123」

說明:split接受一個正則表達式並拆分串成陣列。就像JavaScript的對應。數組是基於0的,所以第二項是「def」。 「\」可能沒有必要,也許只是分割(「|」)的作品 - 它會逃脫|性格以防萬一它意味着正則表達式中任何特殊的東西。

0

使用JavaScript字符串split() function可以通過與delimiter的splitin將字符串轉換爲數組,而不是根據您提供的字段數從數組中獲取值。
嘗試下面的代碼:

function getStrValue(str,delimiter,fld_cnt) 
{ 
    var res = str.split(delimiter); 
    if(fld_cnt > res.length){ 
    alert('Field count is more than your string array size.'); 
    } 
    else{ 
    var retVal = res[fld_cnt-1]; 
    alert(retVal); //return value of "retVal" from here. 
    } 
}