【问题标题】:how to store input.txt in string array and then parse the values into separate array如何将 input.txt 存储在字符串数组中,然后将值解析为单独的数组
【发布时间】:2013-10-15 05:25:32
【问题描述】:

你好,我试图在我的文本文件输入中获取我的值,并将它们存储在一个数组中,然后将这些值解析为可用数据,然后将这些值存储在一个新数组中。我已经读取了文件,但由于某种原因,我似乎无法正确访问这些值,我尝试解析值或删除元素,但当我打印更改后的数组时,它似乎没有改变我的输出中的任何内容。

请让我知道我搞砸了什么部分

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;


public class dataminingp1 
{

    String[] data = new String[100];
    String line;

    public void readf() throws IOException 
    {

        FileReader fr = new FileReader("C:\\input.txt");
        BufferedReader br = new BufferedReader(fr);

        int i = 0;
        while ((line = br.readLine()) != null) 
        {
            data[i] = line;
            System.out.println(data[i]);
            i++;
        }
        br.close();
        System.out.println("Data length: "+data.length);

        String[][] root;

        List<String> lines = Files.readAllLines(Paths.get("input.txt"), StandardCharsets.UTF_8);

        root = new String[lines.size()][];

        lines.removeAll(Arrays.asList("", null)); // <- remove empty lines

        for(int a =0; a<lines.size(); a++)
        {
            root[a] = lines.get(a).split(" ");
        }
        lines.get(0).replace(',', ' ');
        //int p = Integer.parseInt(root[0][0]);
        System.out.println(lines.get(0));
        //System.out.println(p);

    }

    public static void main(String[] args) throws IOException 
    {
        dataminingp1 sarray = new dataminingp1();
        sarray.readf();
    }   
}

请在所有资源中提供您提供的任何帮助,非常感谢您。我真的很感激。

【问题讨论】:

  • 这里是错误的lines.get(0).replace(',', ' '); 字符串是不可变的。将替换方法的结果放回列表中,例如lines.set(0, lines.get(0).replace(',', ' '));

标签: java arrays parsing text


【解决方案1】:

您需要在更改字符串后将更改分配回去,因为String 在 java 中是不可变的。

String changedLine = lines.get(0).replace(',', ' '); // Assign the modified String returned by replace method to changedLine
lines.set(0, changedLine); // Set the 0th index in the lines with the changedLine

【讨论】:

  • 你我的朋友真的是生活品味,我不敢相信这是我错过的部分。现在应该很容易通过解析为我们获取存储在数组中的值。非常感谢
  • 每个人都会遇到,不用担心。很高兴能帮上忙!:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 2021-11-05
  • 2017-10-06
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多