解析CSV文件

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SimpleTest {

	private static String TEST_STR = "\"1,23\",1 23,\"TEST1\",\"TEST2\",\"s\",1,\"1.123\",\"汉字\",\"\",\t,\"\t\",22";

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		init();
		List<String> datas = getCVSArrayDatas(TEST_STR);
	}

	private static List<String> getCVSArrayDatas(String test_str) {
		List<String> datas = new ArrayList<String>();
		String reg = "\"([^\"]+)\"|([^,]+)";
		Pattern pattern = Pattern.compile(reg);
		Matcher matcher = pattern.matcher(test_str);
		while (matcher.find()) {
			String data = matcher.group();
			if (data != null && data.length() >= 2) {
				if (data.charAt(0) == '"'
						&& data.charAt(data.length() - 1) == '"') {
					data = data.substring(1, data.length() - 1);
				}
			} else {
				// do nothing
			}
			datas.add(data);
		}
		return datas;
	}

	private static void init() {
		// chang test str
	}

}
 

你可能感兴趣的:(java)