【问题标题】:Correct syntax for inputing a String file into a 2D Array?将字符串文件输入二维数组的正确语法?
【发布时间】:2013-08-06 15:01:48
【问题描述】:

从文本文件创建2D array 的正确语法是什么?这个array 必须是string 而不是charint。我在这方面找到的信息都不是string,我自己也无法弄清楚确切的语法。

【问题讨论】:

  • 另外我想要一个print 声明来保持array 的格式,这样我就可以看到里面发生了什么。
  • 如果你不尝试写一些,你会保持新的。
  • 在实例化数组之前,您需要知道行数,因为 Java 需要这样做。正如其他人所说,您可以使用 ArrayList (它们会更加有机地增长,并且在开始添加之前不需要您知道元素的数量),如果以后需要数组,它有一个方法 toArray 将其转换为这个。在数组中,如果您有正在读取的当前行号(请记住 Java 数组是零索引的,即从 0 而不是 1 开始),您可以使用行号作为 2d 数组的第一个参数,例如行[rowNum][0] = x
  • @ravi,我很清楚这一点,但是连续几个小时尝试对类似代码进行无指导的更改并没有任何收获。 (相信我。我已经试过了。)
  • @Thefunkymonkey, “在实例化数组之前,您需要知道行数,因为 Java 需要这样做。” 这是我需要知道的。在这种情况下(我很确定稍后我需要一个简单的array)我将锁定文件中的行数。

标签: java string file-io input multidimensional-array


【解决方案1】:

您可以使用ArrayList 对象。它的内部实现是可调整大小或可增长的数组
所以你可以通过ArrayList<String>来达到你的要求。你甚至可以通过使用它的实用方法来达到你的要求。
更多详情ArrayList docs
样品点击here

【讨论】:

  • 是的,我知道/认为arraylist 会让它变得开放,但我需要看看如何实现它。
【解决方案2】:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Read2DimensionFileToList {

    public static void main(String[] args) {
 String [][] sList=new String[100][2];
        BufferedReader br = null;

        try {

            String s;

            br = new BufferedReader(new FileReader("C:\\testing.txt"));
int i=0;
            while ((s = br.readLine()) != null) {

                String []sArray=s.split(",");
                sList[i++][0]=sArray[0];
                sList[i][1]=sArray[1];
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }
}

【讨论】:

  • 这是二维的array
  • 要么用","分割,要么先分割成二维数组。
  • 此代码不会创建 2D array。它创建一个list。显然你正在考虑 2D 我的意思是文件。相反,我指的是文件正在加载到的array
  • 感谢您的帮助。我已经想通了,但是看看其他的做事方式总是好的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 2019-08-04
相关资源
最近更新 更多