|
|
@ -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); |
|
|
|