java读文件的问题 我有一个文件格式如下:USER ITEMSA 1A 2A 3A 4B 1B 2B 4C 10C 8如何读这个文件,然后得到A=(1+2+3+4)=10, B=(1+2+4)=7, C=(10+8)=18 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每行读取,拆词 A 1拆成A和10然后加入TreeMap中 A为键 1为值加下面行的时候,看是否存在键cantainKey(),存在就取出值加上现在的值一直循环到最后一行,这是也完成了计算 import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.Reader;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.TreeMap;public class FileUtil extends BufferedReader{ private Map<String,Integer> map; public FileUtil(Reader in) { super(in); } public void readToMap(){ map=new TreeMap<String, Integer>(); String line=null; String user=null; Integer items=null; try { while((line= super.readLine())!=null){ line=line.trim(); user=line.substring(0,1); try{ items=Integer.parseInt(line.substring(1,line.length()).trim()); }catch(NumberFormatException e){ System.out.println(items+"只能为数字"); continue; } if(map.containsKey(user)){ Integer tempItems=map.get(user)+items; map.put(user, tempItems); }else{ map.put(user, items); } } } catch (IOException e) { e.printStackTrace(); } } public void printMap(){ Set keys=null; Iterator<String> ite=null; String key=null; Integer value=null; if(map!=null&&map.size()!=0){ keys=map.keySet(); ite=keys.iterator(); while(ite.hasNext()){ key=ite.next(); value=map.get(key); System.out.println(key+":"+value); } } } public static void main(String args[]){ try { FileUtil fileUtil=new FileUtil(new FileReader("f:/user.txt")); fileUtil.readToMap(); fileUtil.printMap(); } catch (FileNotFoundException e) { e.printStackTrace(); } }}如果你的user就一个字母的话,可以这么实现! user不是一个字母也可以实现吧? Map<String,Integer> 我说的意思是读取的每行用什么规则来拆分user到底是全字母还是什么...... user 是STRING 如下:"00a16baa-3faa-4385-8398-7bd8735ae32c", 另外 ,如果我不排序,还可以这样用麻?比如:A 1B 2A 3C 1A 2 每个user都是"00a16baa-3faa-4385-8398-7bd8735ae32c"长度吗?你只要把我上面那个程序的拆分规则改下就可以了你的规则 你自己最清楚 一道java算法编程题 如果没有安装J以VM,怎么运行java程序 关于 eclipse VE插件 用java如何求导数 关于删除文件的问题. 我想用这段代码显示硬盘里的一张图片,可为什么显示不了? 万分火急!请问怎么样打印在JEditorPane里的网页页面内容(不是网页的代码)? JList测试程序中的问题 求助:哪里有JPS的例子程序,初学者参考一下,谢谢 Corba刚开始学习,就碰到大难题(对我来说),千呼万唤没办法,鼓足勇气问大虾 请哪位高手修改一下这个小程序 请问jvm是如何是如何执行编译好的class字节码文件的?
然后加入TreeMap中 A为键 1为值加下面行的时候,看是否存在键cantainKey(),存在就取出值加上现在的值一直循环到最后一行,这是也完成了计算
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class FileUtil extends BufferedReader{
private Map<String,Integer> map;
public FileUtil(Reader in) {
super(in);
} public void readToMap(){
map=new TreeMap<String, Integer>();
String line=null;
String user=null;
Integer items=null;
try {
while((line= super.readLine())!=null){
line=line.trim();
user=line.substring(0,1);
try{
items=Integer.parseInt(line.substring(1,line.length()).trim());
}catch(NumberFormatException e){
System.out.println(items+"只能为数字");
continue;
}
if(map.containsKey(user)){
Integer tempItems=map.get(user)+items;
map.put(user, tempItems);
}else{
map.put(user, items);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void printMap(){
Set keys=null;
Iterator<String> ite=null;
String key=null;
Integer value=null;
if(map!=null&&map.size()!=0){
keys=map.keySet();
ite=keys.iterator();
while(ite.hasNext()){
key=ite.next();
value=map.get(key);
System.out.println(key+":"+value);
}
}
}
public static void main(String args[]){
try {
FileUtil fileUtil=new FileUtil(new FileReader("f:/user.txt"));
fileUtil.readToMap();
fileUtil.printMap();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}如果你的user就一个字母的话,可以这么实现!
用什么规则来拆分
user到底是全字母还是什么......
"00a16baa-3faa-4385-8398-7bd8735ae32c",
比如:
A 1
B 2
A 3
C 1
A 2
你只要把我上面那个程序的拆分规则改下就可以了
你的规则 你自己最清楚