- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从充满垃圾的文本中读取某些有用的信息,但它是一些传感器读取的信息。我从这段代码中丢失了很多有用的信息
像'NH3水平l 是:9.9977'
必须有比这更有效的方法,有人可以帮我吗
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class sensorclean {
final static String Array[] = new String[1000];
static int g = 0;
public static void main(String[] args) {
File file = new File("C:/Users/Omar/Desktop/datatest.txt");
try {
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String newline=ignoreComments(line);
if(newline!=null)
Array[g] = newline;
g++;
}
for(int i =0; i<Array.length;i++){
if(Array[i]!=null)
{
Array[i] = Array[i].trim();
System.out.println(Array[i]);
}
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
private static String ignoreComments(String line) {
String result_line=null;
int upto=line.indexOf('#');
int upto1 = line.indexOf('ë');
int upto2 = line.indexOf('~');
int upto3 = line.indexOf('€');
int upto4 = line.indexOf('?');
if((upto!=0&&upto>0)&&(upto1!=0&&upto1>0)){
result_line=line.substring(1, upto4);
System.out.println("here");
}
else{
if(upto<0 && upto1<0 && upto2<0 && upto3<0 ){
result_line=line;
}/*else{
result_line="";
}*/
}
return result_line;
}
}
我的传感器读取温度并将其存储在 .txt 文件中。但它在里面添加了垃圾我正在开发一个java,从中提取有用的信息
这是文件内容的示例
ë~^€}3¢@iw4R#}3¢@iw CO level is: 101.0831, CO2 level is: 375.2046, NH3 leve l is: 9.9977 ?~O€}3¢@isGR# -mac:0013A20040691673,-time:Wednesday, 12/11/14 - 14:06.56, E~G€}3¢@isGR#}3¢@is TEMP: 51.9354, HUMIDITY is: 9.6129, bat: 63%
~_€}3¢@isGR#}3¢@is CO level is: 106.1330, CO2 level is: 374.7616, NH3 leve l is: 86.7625 ?~O€}3¢@if:R# -mac:0013A20040691666,-time:Wednesday, 12/11/14 - 14:09.20, é~I€}3¢@if:R#}3¢@if TEMP: 280.0000, HUMIDITY is: 17.7677, bat: 96% I~^€}3¢@if:R#}3¢@if CO level is: 128.8912, CO2 level is: 375.6922, NH3 leve l is: 9.9977 E~O€}3¢@iw2R# -mac:0013A20040691677,-time:Wednesday, 12/11/14 - 14:12.11, ?~H€}3¢@iw4R#}3¢@iw TEMP: 20.3225, HUMIDITY is: 19.3161, bat: 87 % ?~^€}3¢@iw1R#}3¢@iw CO level is: 101.0831, CO2 level is: 375.1160, NH3 leve l is: 9.9977 ?
这些垃圾并不总是一样的,它在变化
这是我当前的代码
最佳答案
它仍然不是基于正则表达式:
public static void main(String[] args) throws Exception {
StringBuilder tmp = new StringBuilder();
StringBuilder res = new StringBuilder();
Scanner sc = new Scanner(new File("test.txt"));
while (sc.hasNextLine()) {
String line = sc.nextLine();
boolean isRubbish = false;
for (char c : line.toCharArray()) {
if (c == ' ') {
if (!isRubbish) {
res.append(tmp).append(' ');
} else {
isRubbish = false;
}
tmp.setLength(0);
} else if (isRubbish(c)) {
isRubbish = true;
} else {
tmp.append(c);
}
}
}
System.out.println(res);
}
private static boolean isRubbish(char c) {
return "#^}@?".indexOf(c) > -1;
}
关于Java Regix 尝试从文本文件中读取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13537738/
如何使用 SPListCollection.Add(String, String, String, String, Int32, String, SPListTemplate.QuickLaunchO
我刚刚开始使用 C++ 并且对 C# 有一些经验,所以我有一些一般的编程经验。然而,似乎我马上就被击落了。我试过在谷歌上寻找,以免浪费任何人的时间,但没有结果。 int main(int argc,
这个问题已经有答案了: In Java 8 how do I transform a Map to another Map using a lambda? (8 个回答) Convert a Map>
我正在使用 node + typescript 和集成的 swagger 进行 API 调用。我 Swagger 提出以下要求 http://localhost:3033/employees/sear
我是 C++ 容器模板的新手。我收集了一些记录。每条记录都有一个唯一的名称,以及一个字段/值对列表。将按名称访问记录。字段/值对的顺序很重要。因此我设计如下: typedef string
我需要这两种方法,但j2me没有,我找到了一个replaceall();但这是 replaceall(string,string,string); 第二个方法是SringBuffer但在j2me中它没
If string is an alias of String in the .net framework为什么会发生这种情况,我应该如何解释它: type JustAString = string
我有两个列表(或字符串):一个大,另一个小。 我想检查较大的(A)是否包含小的(B)。 我的期望如下: 案例 1. B 是 A 的子集 A = [1,2,3] B = [1,2] contains(A
我有一个似乎无法解决的小问题。 这里...我有一个像这样创建的输入... var input = $(''); 如果我这样做......一切都很好 $(this).append(input); 如果我
我有以下代码片段 string[] lines = objects.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.No
这可能真的很简单,但我已经坚持了一段时间了。 我正在尝试输出一个字符串,然后输出一个带有两位小数的 double ,后跟另一个字符串,这是我的代码。 System.out.printf("成本:%.2
以下是 Cloud Firestore 列表查询中的示例之一 citiesRef.where("state", ">=", "CA").where("state", "= 字符串,我们在Stack O
我正在尝试检查一个字符串是否包含在另一个字符串中。后面的代码非常简单。我怎样才能在 jquery 中做到这一点? function deleteRow(locName, locID) { if
这个问题在这里已经有了答案: How to implement big int in C++ (14 个答案) 关闭 9 年前。 我有 2 个字符串,都只包含数字。这些数字大于 uint64_t 的
我有一个带有自定义转换器的 Dozer 映射: com.xyz.Customer com.xyz.CustomerDAO customerName
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 6 年前。 我想了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是
我已阅读 this问题和其他一些问题。但它们与我的问题有些无关 对于 UILabel 如果你不指定 ? 或 ! 你会得到这样的错误: @IBOutlet property has non-option
这两种方法中哪一种在理论上更快,为什么? (指向字符串的指针必须是常量。) destination[count] 和 *destination++ 之间的确切区别是什么? destination[co
This question already has answers here: Closed 11 years ago. Possible Duplicates: Is String.Format a
我有一个Stream一个文件的,现在我想将相同的单词组合成 Map这很重要,这个词在 Stream 中出现的频率. 我知道我必须使用 collect(Collectors.groupingBy(..)
我是一名优秀的程序员,十分优秀!