2012-05-14 15 views
-4

我在阅读Java中的txt文件时遇到问题。我有一个FILE.TXT(也有一些是这样的:在字符数组中分隔的每个词

Lalala 
Java 
C++ 

我想“转换”成一个阵列(例如用于tab[0][0]L,然后tab[0][1]a等)

我怎样才能做到这一点?

+2

是我们应该做的家庭作业?你有什么尝试?提示,使用FileReader创建InputStream>您可以从那里读取行。 – Hidde

+0

您是否设法阅读文件?首先成功阅读行 – keyser

+2

发布您迄今为止的代码。 – Tudor

回答

0

如果你有String,您可以通过调用String.toCharArray();

首先把它转换成单个字符数组,分裂字符串成单个的单词......

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

各行成字符再拆......

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

如果你需要在一个二维数组,然后你可以做这样的事情(这是一个完整的例子)...

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]等,如你所要求的。

+0

这将转换1个单个字符数组中的所有内容,他需要一个char 2d数组 –

+0

是的,我起初并不完全理解这个需求,但我想我现在知道他们在问什么。 – wattostudios

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); 
} 

这种方式,访问的第一个字弗里斯特字符:

System.out.println(arrays.get(0)[0]); 
相关问题