所以我正尝试根据逗号数量将字符串拆分为数组,该怎么办?说我的弦是这样的;
var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza";
我如何分割它以便它返回;
var array = ["abc, def, ghi, jkl,", "mno, pqr, stu, vwx,", "yza"]
这甚至可能吗?
现在我正在使用var array = string.split(', ');
但是这会基于每个逗号将字符串添加到数组中。
任何帮助将不胜感激!
答案 0 :(得分:4)
我将使用.match
而不是split
-匹配(非逗号,后跟一个逗号或字符串的结尾)4次:
var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza";
const result = string.match(/(?:[^,]+(?:,|$)){1,4}/g);
console.log(result);
(?:[^,]+(?:,|$)){1,4}
-重复1至4次:
[^,]+
-非逗号字符(?:,|$)
-逗号或字符串的结尾如果要确保第一个字符不是空格,请在开头搜索\S
(非空格字符):
var string = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza";
const result = string.match(/(?=\S)(?:[^,]+(?:,|$)){1,4}/g);
console.log(result);
答案 1 :(得分:1)
split
位于,
的字符串。然后创建一个通用的chunk
函数,该函数将传递的数组分成使用Array.from()
size
块
const str = "abc, def, ghi, jkl, mno, pqr, stu, vwx, yza",
splits = str.split(/,\s*/),
chunk = (arr, size) => Array.from({ length: Math.ceil(arr.length / size) },
(_, i) => arr.slice(i * size, (i + 1) * size))
console.log(JSON.stringify(chunk(splits, 4)))
console.log(JSON.stringify(chunk(splits, 3)))
答案 2 :(得分:0)
您还可以使用split和reduce来实现此目的:
ArrayList<Integer> newList = new ArrayList<Integer>();
for (Integer element : list) {
if (!newList.contains(element)) {
newList.add(element);
}
}