2014-03-05 41 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. 
    } 
}