java如何逗号输入
在Java中使用逗号分隔输入
从用户输入中读取逗号分隔的数据可以使用Scanner类结合split()方法。以下是一个示例代码片段:
import java.util.Scanner;
public class CommaSeparatedInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入逗号分隔的数据: ");
String input = scanner.nextLine();
String[] values = input.split(",");
for (String value : values) {
System.out.println(value.trim());
}
}
}
处理CSV文件中的逗号分隔数据
当需要处理CSV文件时,可以使用BufferedReader逐行读取文件内容:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadCSV {
public static void main(String[] args) {
String csvFile = "data.csv";
String line;
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
while ((line = br.readLine()) != null) {
String[] data = line.split(",");
for (String field : data) {
System.out.print(field.trim() + " | ");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用第三方库处理复杂CSV
对于包含转义逗号或引号的复杂CSV数据,推荐使用专门的库如OpenCSV:
import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
public class OpenCSVExample {
public static void main(String[] args) {
try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) {
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
for (String value : nextLine) {
System.out.print(value + " | ");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意事项
处理逗号分隔数据时需要注意引号内的逗号不应作为分隔符。例如:
"Smith, John",35,"New York, NY"

这种情况使用简单的split(",")会导致错误解析,应该使用专门的CSV解析库。
正则表达式可以处理简单情况:
String[] data = line.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
这种方法会匹配不在引号内的逗号作为分隔符。






