每个单词在数组中的字符上划分

时间:2012-05-14 14:53:01

标签: java file java.util.scanner

我在使用Java读取txt文件时遇到问题。我有一个File.txt(有这样的东西:

Lalala
Java
C++

我想将其“转换”为数组(例如,tab[0][0]将为L,然后tab[0][1]将为a等。)

我该怎么做?

2 个答案:

答案 0 :(得分:0)

如果您有String,可以通过调用String.toCharArray();将其转换为单个字符数组

首先,将字符串拆分为单个单词......

String myExample = "Lalala Java C++";
String[] lines = myExample.split(" ");

然后将各行分成字符......

String myFirstLine = lines[0];
char[] letters = myFirstLine.toCharArray();

如果你需要在2D数组中,你可以做这样的事情(这是一个完整的例子)......

String myExample = "Lalala Java C++";
String[] lines = myExample.split(" ");

char[][] myArray = new char[lines.length][0];
for (int i=0;i<lines.length;i++){
    myArray[i] = lines[i].toCharArray();
}

这会根据您的要求将第1行的字母分配给myArray[0][0]myArray[0][1]等,并将第2行的字母分配给myArray[1][0]myArray[1][1]

答案 1 :(得分:0)

如果你想要的是二维数组,问题是数组的宽度需要是更大的单词的长度。我认为这不是一个好习惯。

也许如果你创建一个数组列表,它可能会更好:

List<char[]> arrays = new ArrayList<char[]>();

String[] words = fullText.split(" "); //or split("\\s+") if the text contains many lines  or many spaces between the words

for(String word: words){
   char[] charsOfWord = word.toCharArray();
   arrays.add(charsOfWord);
}

这样,要访问第一个单词中的frist字符:

System.out.println(arrays.get(0)[0]);