如何从文本文件读取字符串,保存在数组中?
老师出了个题目,判断给出的合取范式是否为可满足的,他给了很多个文本文件,要求从文本文件读取数据,例如一个文本中的内容是4 41 -2 -3-1 -44-2 -3 4,也就是我要输出4
4
1 -2 -3
-1 -4
4
-2 -3 4
第一个4代表合取范式中有4个变量
第二个4表示合取范式中有4个析取式
下面的四行代表着4个析取式,数字表示第几个变量,负号代表“非”。
我想知道如何把文件中的这一行存到数组中,能输出成下面的6行?以及有没有合适的方法处理合取范式可满足这个问题的方法? java 字符串 文本读取 数组 --------------------编程问答--------------------
呵呵,是离散数学吧?
“4 41 -2 -3-1 -44-2 -3 4”这个字符串是里面的数值是根据空格号分隔的吧,那么可以根据空格号把字符串分割,然后存入数组。
public Cut
{
File file = new File("path");//你文件的路径
StringBuffer buffer= new StringBuffer();
BufferedReader reader = null;
try
{
reader = new BufferedReader(new FileReader(file));
String text = null; //如果你假设文本只有一行,那么text的值就为:“4 41 -2 -3-1 -44-2 -3 4”
while ((text = reader.readLine()) != null)
{
//可以将文本内容输出来。
}
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} finally
{ try
{
if (reader != null)
{
reader.close();
}
} catch (IOException e)
{
e.printStackTrace();
}
String array[] = text.split(" "); //text就是获得的文本内容,“”里面是一个空格!
for(int i = 0; i < array.length; i++)
{
System.out.printf("array[%d] = %s%n", i, strs[i]);
}
}
希望我没理解错你的意思,哈哈哈。 --------------------编程问答-------------------- 不会吧,代码编辑成这样,sorry! --------------------编程问答-------------------- 这个空格不是分割的条件,所以只能一个char一个char的判断,先把前两个4取出建立数组,
然后再处理剩下的,规律是,提取下一个char,如果是负号就接着再提一个,储存到临时string里,
接着往下读,如果是空格,表明这一行还没读完,
如果不是空格表明读完了, 存入数组,重复上一步骤。
--------------------编程问答--------------------
后面的数据是保存着4*4的二维数组中呢,还是其他存储方式? --------------------编程问答--------------------
额。。。。谢谢你的代码,但是这个题目不是以空格作为分隔符的
补充:Java , Eclipse