java中在txt中存放数据,每行数据的形式是“学号,姓名”,要求根据学号输出相应的姓名

 我来答
杜航杀啊
2013-11-19 · 超过29用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:65.6万
展开全部
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream(new File("XXX.txt"))));
Map<String,String> student = new HashMap<String,String>();
String str=;
while((str=br.readerLine())!=null){
String strs = str.split(",");
student.put(strs[0],strs[1]);
}
br.close();
Scanner s = new Scanner(System.in);
String num = s.nextLine();
System.out.println(studetn.get(num));
纯手打,可能有拼写错误,用eclipse修改吧
追问
如果数据形式是学号!课程号:分数;课程号:分数;...
怎样才能先通过学号得到课程号或者分数
追答
那你就得定义一个实体,比如Cource,里面有两个属性private int cource_id;private String cource_score;分别定义这两个实体的getter,setter方法,然后把map定义成这样Map> map = new HashMap>();这样你就可以存储和查询一个学生的多科成绩
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
artintin
2013-11-20 · TA获得超过1.2万个赞
知道大有可为答主
回答量:7508
采纳率:80%
帮助的人:2822万
展开全部
import java.io.*;
import java.util.*;

public class ReadTxt 
{
 public static void main(String[] args) throws IOException
 {
  BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("XXX.txt"))));
  HashMap<String,String> student = new HashMap<String,String>();
  String str="";
  while((str=br.readLine())!=null)
  {  
    String[] strs = str.split(",");
    student.put(strs[0],strs[1]);
  }
  br.close();
  Scanner s = new Scanner(System.in);
  System.out.println("输入学号,输出姓名,输入学号为0时退出程序");
  while (true)
  {
  System.out.print("请输入学号");
  String num = s.nextLine();
  if(num.equals("0"))break;
  System.out.println(student.get(num));
  
  }
  
}
}
追问
如果数据形式是1250002;计算与软件工程2;线性代数;数据结构与算法;变态心理学;
如何在输入学号之后返回所有课程名
追答

将上面的循环改一下即可,str[0]仍存学号,str[1]存所有课程


import java.util.*;
import java.io.*;
public class ReadTxt 
{
 public static void main(String[] args) throws IOException
 {
  BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("XXX.txt"))));
  HashMap<String,String> student = new HashMap<String,String>();
  String str="";
  while((str=br.readLine())!=null)
  {  
    int index=str.indexOf(";");
    student.put(str.substring(0,index+1),str.substrings(index+1));
  }
  br.close();
  Scanner s = new Scanner(System.in);
  System.out.println("输入学号,输出姓名,输入学号为0时退出程序");
  while (true)
  {
  System.out.print("请输入学号");
  String num = s.nextLine();
  if(num.equals("0"))break;
  System.out.println(student.get(num));
   
  }
   
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式