【发布时间】:2016-08-23 20:03:15
【问题描述】:
我正在尝试将单词存储在 java 数组中以逗号分隔的文件中
该文件是
年龄、收入、学生、信用等级、班级:购买电脑
青春,高,不,公平,不
青春,高,不,优秀,不
中年,高,不,优秀,不
高级、中级、否、一般、是
高级,低,是,一般,是
高级,低,是,优秀,否
public class Test {
public static void main(String args[]) throws FileNotFoundException, IOException{
FileInputStream f=new FileInputStream("F:\\pr\\src\\dmexam\\inp2.txt");
int size,nr=7,nc=5,j=0,i=0;
char ch;
String table[][]=new String[nr][nc];
size=f.available();
table[0][0]=new String();
while(size--!=0){
ch=(char)f.read();
if(ch=='\n')
{
i++;
if(i>=nr)
break;
table[i][0]=new String();
j=0;
continue;
}
if(ch==',')
{
j++;
table[i][j]=new String();
continue;
}
table[i][j]+=ch;
}
f.close();
System.out.println("The given table is:::---");
for(i=0;i<nr;i++){
for(j=0;j<nc;j++){
System.out.print(" "+table[i][j]);
System.out.print(" ");
}
}
}
}
但是输出是
给定的表是:::---
但是如果for这样改变
System.out.println("The given table is:::---");
for(i=0;i<nr;i++){
for(j=0;j<nc-1;j++){
System.out.print(" "+table[i][j]);
System.out.print(" ");
}
System.out.println(table[i][nc-1]);
}
输出是
给定的表格是:::--- 年龄收入学生信用等级:购买电脑
青年高不公平不
青春高不优秀不
中年高不优秀不
高级中等不公平是
高级 低 是 一般 是
高级 低 是 优秀 没有
我想知道“为什么 System.out.print 不工作???”...
【问题讨论】:
-
我会阻止你并把你推荐给Stringbuilder
-
你为什么要让你的生活更艰难,将文本作为单个字符阅读(尤其是对于应该将数据作为字节而不是文本处理的 Streams,因为不需要写入单个字符单字节)?我们有 Readers 将读取数据作为文本处理。使用
BufferedReader,您可以在readLine()方法的帮助下将行读取为字符串。还有Scanner,它为其他类型提供了nextLine()nextInt等方法(请注意:stackoverflow.com/q/13102045)。