MySQL双引号加逗号,是啥分隔符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL双引号加逗号,是啥分隔符相关的知识,希望对你有一定的参考价值。

参考技术A 查询结果用引号逗号分隔。
这是使用MySQL以逗号分隔的列中包含引号的查询-mysql>selectconcat("\'",replace(Name,",","\',\'"),"\'")ASIncludingQuotesfromDemoTable1407。

用双引号将每个字符串括在逗号分隔的字符串中

【中文标题】用双引号将每个字符串括在逗号分隔的字符串中【英文标题】:Enclose each string in a comma separated string in double quotes 【发布时间】:2022-01-13 17:19:31 【问题描述】:

我正在处理一个要求,即我需要将单个字符串括在双引号中的逗号分隔字符串中,同时保留空字符串。

例如:字符串 the,quick,brown,,,,,fox,jumped,,,over,the,lazy,dog 应转换为 "the","quick ","brown",,,,,"fox","jumped",,,"over","the","lazy","dog"

我有这段代码有效。但想知道是否有更好的方法来做到这一点。顺便说一句,我在 JDK 8 上。

String str = "the,quick,brown,,,,,fox,jumped,,,over,the,lazy,dog";
//split the string
List<String> list = Arrays.asList(str.split(",", -1));
// add double quotes around each list item and collect it as a comma separated string
String strout = list.stream().collect(Collectors.joining("\",\"", "\"", "\""));
//replace two consecutive double quotes with a empty string
strout = strout.replaceAll("\"\"", "");
System.out.println(strout);

【问题讨论】:

您可以使用正则表达式在一行中执行此操作:String strout = str.replaceAll("(\\w+)", "\"$1\""); 来源:Re-add strings with qoutations - Mason Smith 如果使用 encodeURI (***.com/questions/607176/…),您正在做的事情会更安全/更强大 str.replaceAll("[^,]+", "\"$0\"") 【参考方案1】:

你可以使用splitstream

public static String covert(String str) 
    return Arrays.stream(str.split(","))
            .map(s -> s.isEmpty() ? s : '"' + s + '"')
            .collect(Collectors.joining(","));

然后:

String str = "the,quick,brown,,,,,fox,jumped,,,over,the,lazy,dog";

System.out.println(covert(str));

输出:

"the","quick","brown",,,,,"fox","jumped",,,"over","the","lazy","dog"

【讨论】:

@Holger 也许我没有正确理解您的评论,但是如果您在 .filter(s -&gt;!s.isEmpty()) 前面添加空字符串,您将无法获得所需的输出(您不会获得 ,,, )。如果您使用原始代码.collect(Collectors.joining("\",\"", "\"", "\"")) 考虑到空字符串,您也不会得到所需的输出(即,"","", 而不是,,,)。有什么我想念的吗? 不,这是一个完美的解释。考虑到这些因素,仍然可能存在避免多个字符串连接的流解决方案,但它会比您的更复杂。因此,如果它必须是流解决方案而不是例如replaceAll 变体张贴在问题下方的 cmets 中,您的问题直截了当。

以上是关于MySQL双引号加逗号,是啥分隔符的主要内容,如果未能解决你的问题,请参考以下文章

hive导入csv文件,字段中双引号内有逗号

PHP数组转字符串(属性加单(双)引号,逗号分隔)

将逗号分隔值转换为双引号逗号分隔字符串

将带逗号的双引号作为分隔符从 S3 导入 Amazon Redshift

用双引号将每个字符串括在逗号分隔的字符串中

使用sed和awk将文件中的非双引号中的逗号分隔符替换为竖线