gpt4 book ai didi

java - 如何从数据集中删除某些列?

转载 作者:行者123 更新时间:2023-12-01 09:45:21 26 4
gpt4 key购买 nike

我有一个包含文本文件(txt 格式)的大型数据集。文本文件包含以下格式的数据:

Name, Number, Timestamp, Sensordata1, Sensordata2, ... , Sensordata40
Name, Number, Timestamp, Sensordata1, Sensordata2, ... , Sensordata40
Name, Number, Timestamp, Sensordata1, Sensordata2, ... , Sensordata40

现在我需要从每一行中删除数字和时间戳。

我现在的代码:

try{
// Open the file that is the first
// command line parameter

FileInputStream fstream = new FileInputStream("file.txt");

// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;

//Read File Line By Line
while ((strLine = br.readLine()) != null) {

// Print the content on the console
System.out.println (strLine);
}

//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}

如何在 Java 中执行此操作?

最佳答案

有几种方法可以实现这一点,具体取决于您想要花费多长时间来检测列等内容,最简单的方法是静态输入您想要在示例中删除的列 1 和 2 相对于数组,这可以在您的示例中完成,如下所示:

package stackquestions;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;

public class StackQuestions {


public static void main(String[] args) {
try{
// Open the file that is the first
// command line parameter

FileInputStream fstream = new FileInputStream("file.txt");

// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;

//Read File Line By Line
while ((strLine = br.readLine()) != null) {
String[] data=strLine.split(",");


for(int i=0;i<data.length;i++){
if(i!=1 && i!=2){
System.out.println (data[i]);
}

}
// Print the content on the console

}

//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}

另一种方法是根据正在读取的行是否是第一行来检测列,分割第一行(假设正在读取的第一行包含标题,然后在每次迭代时对索引进行检查以查看哪一列数据所属。

关于java - 如何从数据集中删除某些列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38101685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com