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