繁体   English   中英

String.replace()不起作用

[英]String.replace() is not working

我所拥有的是一个字符串数组,我正在从我正在阅读的.csv文件中创建。 然后我想解析我将用于'字符的值并用\\替换它',因为我将其输出到javascript文件。

这是我正在使用的代码:

while ((thisLine = myInput.readLine()) != null) {
        String[] line = thisLine.split("\t");                       
            if(line[4].indexOf("'") > -1){
                System.out.println(line[4]);
                line[4] = line[4].replace("'", "\'");
                System.out.println(line[4]);
            }               
            brand.add(line[4]);         
}

但这不起作用。 在我进行替换后,我得到了相同的字符串。

这是因为字符串数组的某些问题吗?

我感谢你在这件事上的任何帮助。

试试这样:

line[4] = line[4].replace("'", "\\'");

反斜杠必须“转义”。

如果是line[4] = line[4].replace("'", "\\'"); 零件\\'转换为'

你对"'""\\'"相同这一事实感到羞愧。 它们是相同的字符串(单个字符,只是一个撇号) - 转义是允许字符文字'\\''

你要:

line[4] = line[4].replace("'", "\\'");

所以现在你正在逃避反斜杠,而不是撇号。 所以你用反斜杠替换撇号然后撇号,这是你想要的。

有关转义字符和字符串文字的详细信息,请参阅JLS第3.10.6节

你应该添加斜杠\\类似这样的东西

line[4] = line[4].replace("'", "\\'");

因为一个左斜线\\是转义字符

您的问题看起来像是一个逃避问题。 尝试\\\\替换单个反斜杠。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM