我有一个长字符串,其中包含文件中的 CSV 数据。我想把它存储在一个JavaScript数组数组中。但是一列中包含任意文本。该文本可以包含双引号和逗号。
将CSV字符串拆分为单独的行字符串没有问题:
< code > var theRows = the CSV . split(/\ r?\ n/);
但是,我怎样才能最好地分割每一行呢?
因为这是CSV数据,我需要用逗号分开。但是
var theArray = new Array();
for (var i=0, i<theRows.length; i++) {
theArray[i] = theRows[i].split(',');
}
不适用于包含引号和逗号的元素,例如:
512,"""Fake News"" and the ""Best Way"" to deal with A, B, and C", 1/18/2019,media
我怎样才能确保第二个元素正确地存储在一个数组元素中
"Fake News" and the "Best Way" to deal with A, B, and C
谢谢
不幸的是,当我在那里尝试CSVtoArray函数时,看起来类似的建议解决方案不起作用。没有返回数组元素,而是返回了一个空值,如我下面的评论所述。
这应该可以做到:
let parseRow = function(row) {
let isInQuotes = false;
let values = [];
let val = '';
for (let i = 0; i < row.length; i++) {
switch (row[i]) {
case ',':
if (isInQuotes) {
val += row[i];
} else {
values.push(val);
val = '';
}
break;
case '"':
if (isInQuotes && i + 1 < row.length && row[i+1] === '"') {
val += '"';
i++;
} else {
isInQuotes = !isInQuotes
}
break;
default:
val += row[i];
break;
}
}
values.push(val);
return values;
}
它将返回数组中的值:
parseRow('512,"""Fake News"" and the ""Best Way"" to deal with A, B, and C", 1/18/2019,media');
// => ['512', '"Fake News" and the "Best Way" to deal with A, B, and C', ' 1/18/2019', 'media']
要获取请求的数组数组,您可以执行以下操作:
let parsedCsv = theCsv.split(/\r?\n/).map(parseRow);
代码可能看起来有点晦涩。但主要思想如下:我们逐个字符解析字符串。当我们遇到"
时,我们设置isInQuotes=true
。这将改变解析、
和"
的行为。当我们遇到单个"
时,我们再次设置isInQuotes=false
。
假设我们有以下字符串: 我需要将它们分开,以获得以下结果: 你会怎么做?
以下是我所做的: 我的意见如下: 这意味着什么无关紧要,但扫描仪所做的是首先将其存储在字符串“按原样”中。然后,我使用 replaceAll 函数删除所有空格。然后我剩下: 然后,我使用java解释这段代码,如果没有错误发生,就执行计算。我现在的问题是,当我把字符串分割成记号时,它将使每个“减号”成为它自己的记号,但我想以某种方式把它和它后面的整数联系起来,这样记号仍然只是一个整数(现在是负的),
问题内容: 我是Python的完整新手,但似乎给定的字符串可以(有效)为任意长度。也就是说,您可以加入并继续添加:。有没有办法制作这样的字符串数组? 当我尝试此操作时,每个元素仅存储一个字符 另一方面,我知道我可以初始化一定长度的字符串数组,即 最多可以存储10个字符串,最多256个字符。 问题答案: 您可以通过创建一个数组来实现。如果您尝试将长字符串分配给普通的numpy数组,则会截断该字符串:
本文向大家介绍JavaScript 将字符串拆分为数组,包括了JavaScript 将字符串拆分为数组的使用技巧和注意事项,需要的朋友参考一下 例子 用于.split从字符串到拆分子字符串的数组: 使用数组方法 .join返回字符串:
我有两个数组 我想检查是否包含中的任何项。基于这里的帖子,我有以下代码,它只适用于chrome
如果我有这个字符串:“MyStringToForSpl的”,我想用这个词“环”来拆分它。如果我这样做:我将得到包含以下元素的数组: MyS 用于拆分 我无法找到拆分它并在结果数组中包含“ring”的最佳方法,如下所示: 1.我的 2 .戒指 3.ForSplitting