繁体   English   中英

我如何从文本文件中获取字符并将其放入2D数组中?

[英]How could i get a chars from a text file and put it into a 2D array?

例如:

-8-88-8-8-8--8

-8-8-8-8-8-8-8

*-8-8-8-8--8-8

8--8-8-8-8--8-
  1. 逐行读取文本文件
  2. -分割字符串-这样您就可以将char数组添加到2d char数组中。

最简单的方法是使用String的toCharArray()方法。

因此,如果您使用的是BufferedReader

   ArrayList<String> list = new ArrayList<String>();

   BufferedReader br = new BufferedReader(new FileReader("file"));
   while ((thisLine = br.readLine()) != null) { 
     list.add(thisLine);
   } 

   // finally convert the arraylist to a char[]
   char[] firstDimension = new char[list.size()];
   for (int i = 0; i < list.length; i++) {
       firstDimension[i] = list.get(i).toCharArray();
   }

char [] firsDimension不是2d。 尝试类似的东西,

    try {
        List<String> list = new ArrayList<String>();

        String thisLine = null;
        BufferedReader br;
        br = new BufferedReader(new FileReader("/path/to/file/yourfile.txt"));

        while ((thisLine = br.readLine()) != null) {
            list.add(thisLine);
        }

        char[][] firstDimension = new char[list.size()][];
        for (int i = 0; i < list.size(); i++) {
            firstDimension[i] = list.get(i).toCharArray();
        }

        //print values
        for (int i=0;i<firstDimension.length;i++) {
            for (int j=0;j<firstDimension[i].length;j++) {
                System.out.println(firstDimension[i][j]);
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

带扫描仪类

    try {
        Scanner scanner = new Scanner(new File(
                "/home/sinan/Desktop/yourfile.txt"));
        scanner.useDelimiter(System.getProperty("line.separator"));

        ArrayList<String> list = new ArrayList<String>();

        while (scanner.hasNext()) {
            list.add(scanner.next());
        }
        scanner.close();

        // finally convert the arraylist to a char[][]
        char[][] firstDimension = new char[list.size()][];
        for (int i = 0; i < list.size(); i++) {
            firstDimension[i] = list.get(i).toCharArray();
        }

        for (int i = 0; i < firstDimension.length; i++) {
            for (int j = 0; j < firstDimension[i].length; j++) {
                System.out.println(firstDimension[i][j]);
            }
        }

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM