首页>代码>java小程序:可扩展可复用的数据分析代码设计(读取数据,分析,输出),研究生作业>/OOP-Experiment-1/src/nv/analyzer/impl/DataFilterMethod.java
package nv.analyzer.impl; import nv.analyzer.AnalyzerMethod; import nv.data.DataStore; import nv.data.impl.RowData; import java.util.Iterator; import java.util.regex.Matcher; import java.util.regex.Pattern; public class DataFilterMethod implements AnalyzerMethod { @Override public DataStore execute(DataStore dataStore) { Iterator<RowData> iterator = dataStore.getIterator(); while (iterator.hasNext()) { RowData rowData = iterator.next(); if (isBad(rowData)) { iterator.remove(); } } return dataStore; } public static final Pattern POSITIVE_FLOAT_PATTERN = Pattern.compile("^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$"); /** * 过滤的列,TODO 去掉了 Volume 因为这类都不是浮点数 */ public static final String[] VALIDATE_COLUMN = new String[]{"Open", "High", "Low", "Close", "Adj Close"}; /** * 根据条件分析是必须为正浮点数 * <p> * Open High Low Close Adj Close Volume, 这4列含有负数、非浮点数、空。 * 验证是否符合错误数据条件 */ private boolean isBad(RowData rowData) { for (String columnName : VALIDATE_COLUMN) { String value = rowData.getValue(columnName); Matcher matcher = POSITIVE_FLOAT_PATTERN.matcher(value); if (!matcher.matches()) { return true; } } return false; } }
最近下载更多
最近浏览更多
uid0901 LV2
4月2日
1195146710 LV4
1月16日
qq1434100519 LV1
2023年11月1日
2017143155 LV12
2023年6月21日
微信网友_6512020493586432 LV2
2023年6月9日
胡明杨
2023年5月4日
暂无贡献等级
guozhihua12 LV3
2023年4月4日
2716804680 LV9
2023年3月23日
科技家 LV2
2023年3月15日
小小虎牙妹 LV4
2023年3月14日