Java 读取由分隔符分隔的文件内容

Java 读取由分隔符分隔的文件内容,java,regex,Java,Regex,约翰,100.00200.00 如何读取文本文件的内容,然后在引号下打印字符串 输出应该是 Jhon 100.00 200.00 String CUSTOMER, CURRENT, NEW; Scanner sc = new Scanner(str); sc.useDelimiter(","); while(sc.hasNext()){ CUSTOMER = sc.next(); CURRENT = sc.next(); N

约翰,100.00200.00

如何读取文本文件的内容,然后在引号下打印字符串

输出应该是 Jhon 100.00 200.00

String CUSTOMER, CURRENT, NEW;
    Scanner sc = new Scanner(str);
    sc.useDelimiter(",");
    while(sc.hasNext()){
        CUSTOMER = sc.next();
        CURRENT = sc.next();
        NEW = sc.next();
           System.out.println("" + CUSTOMER + " " + CURRENT + 
             " " + NEW);  
          }
          sc.close();
如何将标记与引号分开。我得到的上述代码的输出如下
Jhon 100.00 200.00

您可以通过以下方式获得所需的输出:

String CUSTOMER, CURRENT, NEW;
    Scanner sc = new Scanner(str);
    sc.useDelimiter(",");
    while(sc.hasNext()){
        CUSTOMER = sc.next();
        CURRENT = sc.next();
        NEW = sc.next();
           System.out.println("" + CUSTOMER + " " + CURRENT + 
             " " + NEW);  
          }
          sc.close();
public static void main(String[] args) {
    Pattern p = Pattern.compile(".*?\\\"(.*?)\\\".*?");
    Matcher m = p.matcher("\"John\",\"100.00\",\"200.00\"");

    while (m.find()) {
        System.out.println(m.group(1));
    }
}
说明

输出

扫描器也可以使用除空白以外的分隔符。此示例从字符串中读取多个项目:

 String input = "1 fish 2 fish red fish blue fish";
 Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
所以,您可以通过子字符串1、len-1和useDelimiter \、\避免第一个和最后一个引号,中间部分使用3个符号delim

    String str = "\"John\",\"100.00\",\"200.00\"";
    System.out.println(str);
    String CUSTOMER, CURRENT, NEW;
    Scanner sc = new Scanner(
        str.substring(1,str.length()-1)  // <--- here substring 
    );
    sc.useDelimiter("\",\""); // <---- here your split: <token>","<token>

    while(sc.hasNext()){
        CUSTOMER = sc.next();
        CURRENT = sc.next();
        NEW = sc.next();
        System.out.println("" + CUSTOMER + " " + CURRENT + " " + NEW);  
    }
    sc.close();

以下是完成任务的另一种方法:

String line, customerName, currentVal, newVal;
try (Scanner sc = new Scanner(new File("salesrep.txt"))) {
    while (sc.hasNextLine()) {
        line = sc.nextLine().replace("\"", "");
        //skip blank lines (if any)
        if (line.equals("")) {
            continue;
        }
        String[] lineData = line.split(",");
        customerName = lineData[0];
        currentVal = lineData[1]; // or:  double currentVal = Double.parseDouble(lineData[1]);
        newVal = lineData[2];     // or:  double newVal = Double.parseDouble(lineData[2]);
        System.out.println("" + customerName + " " + currentVal + " " + newVal);
    }
}
catch (FileNotFoundException ex) {
    ex.printStackTrace();
}

您忘记发布您迄今为止尝试过的代码。您迄今为止尝试过什么吗??与我们分享。这看起来像CSV数据,所以使用CSV解析器!!!!我从一个文件中获取信息,因此如何使其在文件输入中工作您可以通过
String line, customerName, currentVal, newVal;
try (Scanner sc = new Scanner(new File("salesrep.txt"))) {
    while (sc.hasNextLine()) {
        line = sc.nextLine().replace("\"", "");
        //skip blank lines (if any)
        if (line.equals("")) {
            continue;
        }
        String[] lineData = line.split(",");
        customerName = lineData[0];
        currentVal = lineData[1]; // or:  double currentVal = Double.parseDouble(lineData[1]);
        newVal = lineData[2];     // or:  double newVal = Double.parseDouble(lineData[2]);
        System.out.println("" + customerName + " " + currentVal + " " + newVal);
    }
}
catch (FileNotFoundException ex) {
    ex.printStackTrace();
}