两道笔试题

WITLP 2008-11-11 08:31:20
1.给定任一字符串,任意长度,要求找出其中有多少种字符,并找出出现次数最多的字符及其出现次数。
2.文件读写:从1.txt文件中读取内容,并写入到2.txt中去。
...全文
279 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
RyanNewLife 2008-11-11
  • 打赏
  • 举报
回复
结果是:{w=2, =4, s=2, ;=1, o=2, h=4, i=2}
RyanNewLife 2008-11-11
  • 打赏
  • 举报
回复
import java.util.HashMap;
import java.util.Map;

public class Test04 {

public static void main(String[] args) {
String str = "wo wo shi shi hh;";
char[] cArray = str.toCharArray();
Map m = new HashMap();
for (int i = 0; i < cArray.length; i++) {
Character c = (Character) cArray[i];
Integer count = (Integer) m.get(c);
m.put(c, (count == null ? 1 : new Integer(count.intValue() + 1)));
}
System.out.println(m);

}

}
view8888 2008-11-11
  • 打赏
  • 举报
回复
帮顶
yinhe402 2008-11-11
  • 打赏
  • 举报
回复
不错啊 !学习1!!!
lzysystem 2008-11-11
  • 打赏
  • 举报
回复
不错,又把基础知识补充了一边
rosewj 2008-11-11
  • 打赏
  • 举报
回复
帮顶
ZiSheng 2008-11-11
  • 打赏
  • 举报
回复
第一道题,你应该创建一个字符类
如下这样:

class charac{
private char dchar;//存储字符
private int count;//存储字符出现的个数
public void addCount(){
count++
}
public charac(char dchar){
this.dchar=dcchar;
count=1;
}
}

新建一个数组,用来存储你的查找出来的不同的字符,最好排序,查找的时候二分查找,
不同的话则插入,相同的话就addCount()
第二道题
public static void main(String [] args){
BufferedReader in=BufferedReader(new FileReader("readFileName"));
PrintWriter out=new PrintWriter(new FileWriter("writeFileName"));
String readString;
while(readString=in.readLine()!=null){
out.println(readString);
in.close();
out.close();
}
}
xushuhai2004 2008-11-11
  • 打赏
  • 举报
回复
二楼得说得差不多,先排序,然后在便利
lgh1117 2008-11-11
  • 打赏
  • 举报
回复
IO流的操作和字符的处理,这是老生常谈了.
RJCHEN1985 2008-11-11
  • 打赏
  • 举报
回复
使用HashMap<String,Integer>来记录字符的信息,对于在Map中没有改键值的加入去然后设定值为1,如果存在则次数加1;
使用BufferedReader来读,每次读行,然后用PrintWriter写到另一个文件就好。
view8888 2008-11-11
  • 打赏
  • 举报
回复
帮你找到了 请给分
读出1.txt中的内容,写入2.txt中
import java.io.*;
public class Test2 {
public static void main(String[] args) {
try {
File read = new File("c:\\1.txt");
File write = new File("c:\\2.txt");

BufferedReader br = new BufferedReader(new FileReader(read));
BufferedWriter bw = new BufferedWriter(new FileWriter(write));

String temp = null;//临时存储变量
temp = br.readLine();
while (temp != null) {
// 写文件
bw.write(temp + "\r\n"); // 只适用Windows系统
// 继续读文件
temp = br.readLine();
}
bw.close();
br.close();
} catch (FileNotFoundException e) { // 文件未找到
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
}
}
}
catslee 2008-11-11
  • 打赏
  • 举报
回复
老生常谈拉~~!!不多说了!!!
showde123 2008-11-11
  • 打赏
  • 举报
回复
学习了
wanganqing 2008-11-11
  • 打赏
  • 举报
回复
第一题

import java.io.*;
import java.util.SortedMap;
import java.util.TreeMap;

public class Quest1 {
public static void main(String[] args){
System.out.println("please input a string: ");
String str = "";
SortedMap<Integer,Character> map = new TreeMap<Integer,Character>();
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
str = br.readLine();
br.close();
}catch(IOException e){
System.out.println(e);
}
char[] ch = str.toCharArray();
for(int i=0;i<ch.length;i++){
int count=0;
for(int j=0;j<ch.length;j++){
if(ch[i]==ch[j]){
count++;
}
}
if(!map.containsValue(ch[i])){
map.put(count, ch[i]);
}
}
int highest = map.lastKey();
char cc = map.get(highest);
System.out.println("出现频率最大的字符为 :"+cc+" "+"出现次数为:"+highest);
}
}
tsrsdili 2008-11-11
  • 打赏
  • 举报
回复
学习

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧