Java 在文件中添加缺少的双引号

Java 在文件中添加缺少的双引号,java,string,file,csv,Java,String,File,Csv,我有一个只包含字符串类型双引号的文件,但我需要将缺少的双引号添加到其他字段中,并使用java写入文件 比如说 123 ,6 ,"abc@yahoo.com" " 应转换为 "123 ","6 ","abc@yahoo.com" " 不修剪任何值,只在字段周围添加缺少的文本限定符。我尝试过根据分隔符进行拆分,然后用引

我有一个只包含字符串类型双引号的文件,但我需要将缺少的双引号添加到其他字段中,并使用java写入文件

比如说

123  ,6   ,"abc@yahoo.com"
                                            "
应转换为

"123  ","6   ","abc@yahoo.com"                                         "
不修剪任何值,只在字段周围添加缺少的文本限定符。我尝试过根据分隔符进行拆分,然后用引号括起来,但没有成功

如果您已经解决了此类问题,请与他人分享。

您需要使用string.replaceAll方法


有一种解决方案没有这样复杂的正则表达式:您必须按拆分输入,并包装生成的字符串:


通过使用String类中的split方法并在需要时添加quote,您可以很容易地做到这一点。 基本上,我会尝试这样的方法:

public static void main (String... args) {
    String st = "123  ,6   ,\"abc@yahoo.com";
    String[] results = st.split(",");
    String result = "";

    for (String s : results) {
        if (!s.startsWith("\""))
            s = "\"" + s + "\"";
        if (!s.endsWith("\""))
            s+="\"";

        s+=",";

        result += s;
    }

    System.out.println(st);
    System.out.println("-------------");
    System.out.println(result);
}

这将保留空格并添加一些缺少的引号。

我尝试了,下面的代码正在运行

public static void test()
{
    String str = "123  ,6   ,\"abc@yahoo.com                                                 \"";
    String result = "",temp="";
    StringTokenizer token = new StringTokenizer(str,",");
    while(token.hasMoreTokens())
    {
        temp = token.nextToken();
        if(!temp.startsWith("\""))
            result += "\""+temp+"\"";
        else
            result += temp;
    }
    System.out.println(result);

}

请检查…

尝试使用简单的foreach和if循环检查值是否有双引号,然后将引号添加到值中

for(Object obj:YourContainer){    
   if(!value.contains("\"")){
        String s = "\"" + value + "\"";
    }
}
如果您得到像Test这样带有双引号的字段,请尝试使用replace函数

String s;
for(Object obj:YourContainer){    
   if(!value.contains("\"")){
        s = "\"" + value + "\"";
    }
    s = s.replace("\"\"","\"");
}

我想您最后忘记添加双引号了。请使用带正则表达式的replaceAll方法。显示您尝试过的方法,解释它不起作用的含义。将所有引号替换为空,然后根据分隔符拆分行,最后换行引号。如果字符串之间有分隔符,则出现问题quotes@imroze527是abc@yahoo.com你的意见?最后缺少的引号怎么办?如果在字符串之间有一个说逗号是分隔符,那就是失败了。如果不是,那么哪个是实际的分隔符?@是,逗号是分隔符。如果字符串中间包含逗号怎么办?像abc,def
for(Object obj:YourContainer){    
   if(!value.contains("\"")){
        String s = "\"" + value + "\"";
    }
}
String s;
for(Object obj:YourContainer){    
   if(!value.contains("\"")){
        s = "\"" + value + "\"";
    }
    s = s.replace("\"\"","\"");
}