替换字符串中的引号

时间:2019-06-19 16:33:20

标签: java regex string replace

我必须将双引号之间的所有逗号替换为一个点。 我正在尝试使用replace和replaceAll Java的方法来做到这一点。但是我仍然没有解决问题。 有人可以帮我吗?

编辑: 我必须手动将csv文件解析为对象。因此,我尝试对每个输入行进行字符串拆分,但是其中一个数字的内部带有逗号,因此我获取的数据超过了拆分所需的数据。 示例:我必须拆分此字符串。

  

“”“” LASER MEDIA SOCIETA'COOPERATIVA“”“,CNF146010,FM(S),PIAZZA UMBERTO I-PISTICCI,MT,40N2323,16E3328,383 ,,” 99,1“,CITY RADIO,” H:- -V:32 dBW“,0.0

请注意,在我遇到麻烦之前,我有“ 99,1”和。

Scanner var = new Scanner(new BufferedReader(new FileReader ("t1.csv")));
     ArrayList<Catasto> obj = new ArrayList();
     String data = var.nextLine();
     String data2 = null;
     String full = null;
     int j = 0;
     while (var.hasNextLine()) {
         data = var.nextLine();
         data2 = var.nextLine();
         full = data + data2;
         //full = full.replaceAll("\"*[,]*\"", "."); attempt 1
         System.out.println(full);
         ArrayList<String> parts = new ArrayList();
         String[] parti = full.split(",");
         //for (int i = 0; i<parti.length; i++) {  this is because I'm trying to change empty string with a null
         //if (parti[i] == " ")                    in order to solve this error: java.lang.NumberFormatException: For input string: ""
         //      parti[i] = null;                  
         //}
         for (int i = 0; i<12; i++) {
                 parts.add(parti[i]);
         }
         Catasto foo = new Catasto(parts);
         obj.add(foo);
    }
     var.close();

编辑2: 我已经解决了双引号之间的逗号问题。但是我不知道为什么会出错:java.lang.NumberFormatException:对于输入字符串:“”

1 个答案:

答案 0 :(得分:0)

您将很难用单个replaceAll来完成它,或者根据需要确定对引号来替换。最好的选择是匹配引号对,并在组中使用replaceAll来将逗号更改为句号。

import settings

class MySpider(Spider):
    name = 'my_spider'
    custom_settings = dict(settings.main_settings)
    local_settings = {
        'FEED_EXPORT_FIELDS': ["url"],
        'FEED_FORMAT': 'csv',
        'FEED_URI': './output/phase3.csv'
    }
    custom_settings.update(local_settings)