我有这样的字符串
String input = "ABCD|opt/kelly/box.txt|DXC|20-12-2015 11:00:00"
我已经通过google-ing像indexOf()过载等尝试了很多选项,但无法得到确切的结果。
这是否可能我可以在“|”
的基础上拥有多个输出字符串预期输出
String one = input.substring(0,input.indexOf("|")) = ABCD
String two = opt/kelly/box.txt
String three = DXC
String four = 20-12-2015 11:00:00
我该如何处理其余的?
如有任何建议,请问如何使用indexOf和substring来获得此结果。
先谢谢!!
答案 0 :(得分:4)
这很容易。您需要做的就是使用.split
:
var input = "ABCD|opt/kelly/box.txt|DXC|20-12-2015 11:00:00";
input = input.split("|");
console.log(input);
但如果您需要one
,two
等变量,则可能需要使用destructuring assignment。您无需在此处使用.indexOf
。
使用解构分配
var input = "ABCD|opt/kelly/box.txt|DXC|20-12-2015 11:00:00";
var [one, two, three, four] = input.split("|");
console.log(one);
console.log(two);
console.log(three);
console.log(four);
答案 1 :(得分:1)
首先,请注意JavaScript不允许您像以前一样声明数据类型:
String input ....
您只能声明变量(即var input ...
)
除此之外, .split() 方法(根据您的分隔符拆分字符串并将部分数组返回给您)将会这样做。
此外,如果您需要将每个数组元素存储在自己的变量中,则可以使用 destructuring assignment 来完成此操作。
// Here's your scenario:
var input = "ABCD|opt/kelly/box.txt|DXC|20-12-2015 11:00:00";
var one = input.substring(0,input.indexOf("|")) // ABCD
// Do the remaining split on the original string without the already found parts
var [two, three, four] = input.replace(one + "|","").split("|");
console.log(one);
console.log(two);
console.log(three);
console.log(four);
// Here'e a cleaner alternative that uses a destructuring assignment:
var input2 = "ABCD|opt/kelly/box.txt|DXC|20-12-2015 11:00:00";
var [one2, two2, three2, four2] = input.split("|");
console.log(one2);
console.log(two2);
console.log(three2);
console.log(four2);