Browse Source

feat: 异常数据处理

w2
Bilei 1 month ago
parent
commit
c02d15d224
  1. 12
      w2/DataCleaner.java

12
w2/DataCleaner.java

@ -1,30 +1,22 @@
public class DataCleaner { public class DataCleaner {
public static void main(String[] args) { public static void main(String[] args) {
int[] sensorData = {85, -5, 92, 0, 105, 999, 88, 76}; int[] sensorData = {85, -5, 92, 0, 105, 999, 88, 76};
int validSum = 0; // 有效数据总和 int validSum = 0;
int validCount = 0; // 有效数据个数 int validCount = 0;
for (int num : sensorData) { for (int num : sensorData) {
// 规则3:致命错误,遇到999终止流程
if (num == 999) { if (num == 999) {
System.out.println("致命错误:传感器掉线,终止处理"); System.out.println("致命错误:传感器掉线,终止处理");
break; break;
} }
// 规则2:无效数据,跳过当前循环
if (num <= 0 || (num > 100 && num != 999)) { if (num <= 0 || (num > 100 && num != 999)) {
System.out.println("警告:发现越界数据[" + num + "],已跳过"); System.out.println("警告:发现越界数据[" + num + "],已跳过");
continue; continue;
} }
// 规则1:正常范围,计入有效数据
if (num >= 1 && num <= 100) { if (num >= 1 && num <= 100) {
validSum += num; validSum += num;
validCount++; validCount++;
} }
} }
// 规则4:最终输出
if (validCount > 0) { if (validCount > 0) {
double average = (double) validSum / validCount; double average = (double) validSum / validCount;
System.out.println("有效数据平均值:" + average); System.out.println("有效数据平均值:" + average);

Loading…
Cancel
Save