JAVA:如何将 txt 文件转换为带有 E 表示法数字的二维数组?

Posted

技术标签:

【中文标题】JAVA:如何将 txt 文件转换为带有 E 表示法数字的二维数组?【英文标题】:JAVA: how do I convert a txt file into a 2-D array with numbers in E notation? 【发布时间】:2016-12-03 23:07:08 【问题描述】:

我有一个 .txt 文件,其中包含 300 行和 785 列,其中包含一堆 E 表示法的数字(例如 -6.431571950262252035e-02)。我如何将这些数字转换为二维数组?

这就是我所拥有的:

 double[][] hiddenArray = new double[300][785];  

 Scanner scanner = new Scanner(System.in) ;
 String hiddenFile = "hidden-weights.txt";
 String outputFile = "output-weights.txt";
 scanner.close();

 Scanner in = new Scanner(new File(hiddenFile));
 String hidden= in.nextLine();

【问题讨论】:

【参考方案1】:

使用Scanner::hasNext() 在有更多行时循环,Scanner::nextLine() 获取下一行,然后使用String::split() 获取每行上的字符串数组(注意:我的假设是列由逗号(即,),但请随时根据您的需要进行调整)。要解析 e 表示法中的数字,请使用 Double.valueof(),并将该值添加到数组中(例如 hiddenArray)。

您应该可以使用下面的示例。我还在tutorialspoint.com codingGround 上创建了一个示例,但这可能不起作用...

    try 
        String delimiter = ","; //separates columns - change for your needs

        int row = 0;
        Scanner in = new Scanner(new File(hiddenFile));
        String line;
        while (in.hasNext() && (line = in.nextLine()) != null )   
            String[] vals = line.trim().split(",");

            for (int col = 0; col < vals.length; col++) 
                hiddenArray[row][col] = Double.valueOf(vals[col]);
            
            row++;
            
    
    catch(FileNotFoundException e) 
        System.out.println("file not found - "+e.getMessage());
    

【讨论】:

以上是关于JAVA:如何将 txt 文件转换为带有 E 表示法数字的二维数组?的主要内容,如果未能解决你的问题,请参考以下文章

ImageJ:如何将 txt 文件转换为插件

如何在 Linux 中将文件编码转换为 UTF-8

ValueError:无法将字符串转换为float:matrix文件

如何在 Linux 中将文件编码转换为 UTF-8

如何将多行文本转换为一行?

如何将txt文件数据转换为json?