本帖最后由 王峰230321 于 2013-7-27 12:42 编辑
我基本是按老师讲的 那么写. 应该也不差什么. 功能都实现了. 可是 在最后往文件写的时候 . 为什么不是我的toString方法, 写出来之后 是一个对象的地址值? . 这是为什么呢.? 我找到问题了- - 对不起了. 正在 实验的同学. . 我手欠在toString里放了一个参数.. . 空参数 就好了还是这个编码 .. 服了- - . 为什么 打印的时候 不换行.. 或者说. 为什么 不是接着写. ? 而是 覆盖着写. 写完一个学生. 在写第二个学生的时候 就把第一个给覆盖了
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
import java.io.*;
import java.util.*;
class Caifen
{
public static void main(String[] args)throws Exception
{
Set<Student> su=StudentInfoTool.getstudents();
StudentInfoTool.Filestu(su);
}
}
class Student implements Comparable<Student>
{
private static String name;
private static int su,yu,ying,sum;
Student(String name,int su,int yu,int ying)
{
this.name=name;
this.su=su;
this.yu=yu;
this.ying=ying;
sum=su+yu+ying;
}
public String getName()
{
return name;
}
public int getSum()
{
return sum;
}
public boolean equals(Object obj)
{
if(obj instanceof Student)
throw new ClassCastException("类型不匹配");
Student s=(Student)obj;
return this.name.equals(s.name)&&this.sum==s.sum;
}
public int compareTo(Student s)
{
int num=new Integer(this.sum).compareTo(new Integer(s.sum));
if(num==0)
return this.name.compareTo(s.name);
return num;
}
public String toStri()
{
return name+" "+su+" "+yu+" "+ying;
}
}
class StudentInfoTool<T>
{
public static Set<Student> getstudents()throws Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
Set<Student> sset =new TreeSet<Student>();
String line=null;
while((line=br.readLine())!=null)
{
if("over".equals(line))
break;
String[] info=line.split(",");
Student stu=new Student(info[0],Integer.parseInt(info[1]),
Integer.parseInt(info[2]),Integer.parseInt(info[3]));
sset.add(stu);
}
br.close();
return sset;
}
public static void Filestu(Set<Student> ssut)throws Exception
{
BufferedWriter bw=new BufferedWriter(new FileWriter("sut.txt"));
for(Student stu:ssut)
{
bw.write(stu.toStri()+"\t");
bw.write(stu.getSum()+"\r\n"+"我是好人");
bw.newLine();
bw.flush();
}
bw.close();
}
}
|
|