#测验基本功:一文件操作问题 文件操作简单,每次读一行进来。然后就是字符串的操作。你可以用java的Set集合来保存你的信息(set只允许在集合中存在一个记录)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好说明一下JDK的版本,最近老开发1.3的咚咚,老不爽的说 我写了一个给你看看:完成的程序,把input.f和output.f和源程序放在一起:/** @author ken* @email [email protected]**/import java.util.*;import java.io.*;public class SortCounter { public static void main(String[] args) { try { FileReader fileReader=new FileReader("input.f"); FileWriter fileWriter=new FileWriter("output.f",true); BufferedReader bufferedReader=new BufferedReader(fileReader); PrintWriter printWriter=new PrintWriter(fileWriter,true); int cnt=0; int b; Object key,value; String comp_score=""; String[] Arr_tmp; String tmp=""; String charat=""; boolean TagOfBreak=true; HashMap map=new HashMap(); while((tmp=bufferedReader.readLine())!=null) { cnt++; Arr_tmp=tmp.split(":"); comp_score=Arr_tmp[0]+":"; TagOfBreak=true; for(int i=0;i<Arr_tmp[1].length();i++) { charat=Arr_tmp[1].charAt(i)+""; for(int j=0;j<10;j++){ if(charat.equals(j+"")) { comp_score=comp_score+charat; TagOfBreak=false; } } if(TagOfBreak)break; } key=(Object)comp_score; value=map.get(key); if(value!=null) value=(Object)((Integer.parseInt(value.toString())+1)+""); if(map.containsKey(comp_score)) { map.put(key,value); } else { map.put(key,(Object)(1+"")); } } bufferedReader.close(); fileReader.close(); Set set=map.keySet(); for(Iterator it=set.iterator();it.hasNext();) { value=it.next(); //System.out.print(value); //System.out.println("|||||"+map.get(value)); printWriter.println(value+"\t"+map.get(value)); } System.out.println(cnt+"||||||||||||||||||||||||"+set.size()); } catch(Exception e) { e.printStackTrace(); } } } 记得给分哦。呵呵~~~~------------------------------------------------------------一定一定!其实写一个并不是太难,我主要想看看效率方面如何处理的;当有几十M 的input.f 时,你的程序处理的速度如何~ 楼上一个main方法包括了所有操作,强的。应该拆分一下吧.......我想象中可以分为主队比分和客队比分,根据比分来操作。字符串操作总是不太好。class Score { int host_score = 0; int guest_score = 0;}这样也便于以后稀奇古怪比分的排序,胜负的计算等等.Java程序主要的不是效率问题,而是扩展性和灵活性.文件太大要看内存的,弄不好就死翘翘了.一点点看法而已 获取短信猫中的SIM卡的号码以及具体信息 smpp短信网关 各位朋友高手,看看以下哪本java书最好。 java连接数据库的问题 有关 XML 名字空间定义的问题 生成文件应该怎么作啊,我作的怎么总是生成文件夹啊?????? 安卓listview显示网络上的图片和图片的描述 急请高手解答 一个小应用问题。 笔试题目 问个土问题 一个线程如果调了sleep,不就处于阻塞态了?那他的对象锁也应释放才是,我迷惑. 如何得到BigDecimal对象的一个副本?
完成的程序,把input.f和output.f和源程序放在一起:
/*
* @author ken
* @email [email protected]
*
*/
import java.util.*;
import java.io.*;
public class SortCounter {
public static void main(String[] args)
{
try
{
FileReader fileReader=new FileReader("input.f");
FileWriter fileWriter=new FileWriter("output.f",true);
BufferedReader bufferedReader=new BufferedReader(fileReader);
PrintWriter printWriter=new PrintWriter(fileWriter,true);
int cnt=0;
int b;
Object key,value;
String comp_score="";
String[] Arr_tmp;
String tmp="";
String charat="";
boolean TagOfBreak=true;
HashMap map=new HashMap();
while((tmp=bufferedReader.readLine())!=null)
{
cnt++;
Arr_tmp=tmp.split(":");
comp_score=Arr_tmp[0]+":";
TagOfBreak=true;
for(int i=0;i<Arr_tmp[1].length();i++)
{
charat=Arr_tmp[1].charAt(i)+"";
for(int j=0;j<10;j++){
if(charat.equals(j+""))
{
comp_score=comp_score+charat;
TagOfBreak=false;
}
}
if(TagOfBreak)break;
}
key=(Object)comp_score;
value=map.get(key);
if(value!=null)
value=(Object)((Integer.parseInt(value.toString())+1)+"");
if(map.containsKey(comp_score))
{
map.put(key,value);
}
else
{
map.put(key,(Object)(1+""));
}
}
bufferedReader.close();
fileReader.close();
Set set=map.keySet();
for(Iterator it=set.iterator();it.hasNext();)
{
value=it.next();
//System.out.print(value);
//System.out.println("|||||"+map.get(value));
printWriter.println(value+"\t"+map.get(value));
}
System.out.println(cnt+"||||||||||||||||||||||||"+set.size());
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
------------------------------------------------------------
一定一定!
其实写一个并不是太难,我主要想看看效率方面如何处理的;
当有几十M 的input.f 时,你的程序处理的速度如何~
应该拆分一下吧.......
我想象中可以分为主队比分和客队比分,根据比分来操作。字符串操作总是不太好。
class Score {
int host_score = 0;
int guest_score = 0;
}
这样也便于以后稀奇古怪比分的排序,胜负的计算等等.Java程序主要的不是效率问题,而是扩展性和灵活性.文件太大要看内存的,弄不好就死翘翘了.
一点点看法而已