将数组放入文件列列

时间:2017-02-08 19:35:58

标签: java arrays file multidimensional-array

我目前有一个.txt文件,其中一行看起来像:

xxxxxxxxxxxxxxxxxxxxx

我想将这一行放入一个二维数组,这样我的文件可以这样出来:

xxxxxxx
xxxxxxx
xxxxxxx

这是我的java课程:

import java.util.*;
import java.io.*;

public class EncryptDecrypt {

    public static void encrypt() throws IOException {
        BufferedReader in = new BufferedReader(new FileReader("TextFile.txt"));
        String line = in.readLine();

        String[][] e = new String[5][3];

        // fill array
        for(int i = 0; i < e.length; i++) {
            for(int j = 0; j < e.length; j++) {
                e[i][j] = line;
            }
        }

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

    public static void main(String[] args) throws IOException {
        encrypt();
    }
}

当我运行我的java类时,我得到的就是这不是我想要的东西:

xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx

2 个答案:

答案 0 :(得分:1)

您必须使用2D array char1D array String

'String' class已在内部实施为array of 'Char'

只需使用1D array String,例如:

String[] e = new String[3];
    // fill array
    for(int i = 0; i < e.length; i++) {
            e[i] = line;
        }

    // print array
    for(int i = 0; i < e.length; i++) {
            System.out.println(e[i]);

    }

2D版本如下(不推荐)

    String line = in.readLine();

 Char[][] e = new Char[3][5];

 for(int i = 0; i < e.length; i++) {
            for(int j = 0; j < e.length; j++) {
                e[i][j] = line.charAt(j);//to access element at jth index of string
            }
        }

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

无论如何打印你不要存储在数组中,只需:

int noOfRows = 3;
for(int i=0;i<noOfRows;i++){
 System.out.println(line)
}

答案 1 :(得分:0)

你可以像这样迭代字符串:

for (String token : Splitter.fixedLength(coluns).split(line)) {
    System.out.println(token);
}

使用Guava&#39; UnicodeEncoding class时可以使用更具说明性的版本:

setTimeout(function(){alert('Test')},20);