A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

提示: 该帖被管理员或版主屏蔽

36 个回复

倒序浏览
  1. package fanShe;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.io.IOException;

  8. /*
  9. * 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
  10. */
  11. public class Test10 {
  12.         public static void main(String[] args) throws IOException {
  13.                 File SrcFolder = new File("C:\\Test");
  14.                 File destFolder = new File("D:\\hhh");

  15.                 if (!destFolder.exists()) {
  16.                         destFolder.mkdir();
  17.                 }

  18.                 copy(SrcFolder, destFolder);
  19.         }

  20.         private static void copy(File srcFolder, File destFolder)
  21.                         throws IOException {
  22.                 if (srcFolder.isDirectory()) {
  23.                         File[] files = srcFolder.listFiles();
  24.                         for (File f : files) {
  25.                                 copy(f, destFolder);
  26.                         }
  27.                 } else {
  28.                         if (srcFolder.getName().endsWith(".txt")) {
  29.                                 File destFile = new File(destFolder, srcFolder.getName()
  30.                                                 .replace(".txt", ".java"));
  31.                                 copyFile(srcFolder, destFile);
  32.                         }
  33.                 }
  34.         }

  35.         private static void copyFile(File srcFolder, File destFile)
  36.                         throws IOException {
  37.                 BufferedReader br = new BufferedReader(new FileReader(srcFolder));
  38.                 BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
  39.                 String str = null;
  40.                 while ((str = br.readLine()) != null) {
  41.                         bw.write(str);
  42.                         bw.newLine();
  43.                         bw.flush();
  44.                 }
  45.                 br.close();
  46.                 bw.close();
  47.         }
  48. }
复制代码


回复 使用道具 举报
  1. package fanShe;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;

  7. /*
  8. * 使用高效字符缓冲流复制文件
  9. */
  10. public class Test08 {
  11.         public static void main(String[] args) throws Exception {
  12.                 File srcFile = new File("a.txt");
  13.                 File destFile = new File("b.txt");
  14.                 BufferedReader br = new BufferedReader(new FileReader(srcFile));
  15.                 BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));

  16.                 String str = null;
  17.                 while ((str = br.readLine()) != null) {
  18.                         bw.write(str);
  19.                         bw.newLine();
  20.                         bw.flush();
  21.                 }

  22.                 br.close();
  23.                 bw.close();
  24.         }
  25. }
复制代码


回复 使用道具 举报
  1. package com.itheima;
  2. /*
  3. *         统计一个文本文件中字符出现的次数,结果存入另外的一个文本文件中。例如:
  4. *               a:  21 次
  5. *              b:  15 次
  6. *               c: 15 次
  7. *               把:  7 次
  8. *               当:  9 次
  9. *               前:  3 次
  10. *               ,:30 次
  11. */
  12. import java.io.BufferedReader;
  13. import java.io.BufferedWriter;
  14. import java.io.File;
  15. import java.io.FileReader;
  16. import java.io.FileWriter;
  17. import java.util.Set;
  18. import java.util.TreeMap;

  19. public class Test5 {
  20.         public static void main(String[] args) throws Exception {
  21.                 File srcFile = new File("Test5_1.txt");
  22.                 File destFile = new File("Test5_2.txt");

  23.                 count(srcFile, destFile);
  24.         }

  25.         private static void count(File srcFile, File destFile) throws Exception {
  26.                 BufferedReader br = new BufferedReader(new FileReader(srcFile));
  27.                 BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
  28.                 TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();

  29.                 String str = null;
  30.                 while ((str = br.readLine()) != null) {
  31.                         char[] chs = str.toCharArray();
  32.                         for (int i = 0; i < chs.length; i++) {
  33.                                 if (map.containsKey(chs[i])) {
  34.                                         map.put(chs[i], map.get(chs[i]) + 1);
  35.                                 } else {
  36.                                         map.put(chs[i], 1);
  37.                                 }
  38.                         }
  39.                 }
  40.                 Set<Character> set = map.keySet();
  41.                 for (Character cc : set) {
  42.                         System.out.println(cc + ":" + map.get(cc));
  43.                 }
  44.                 br.close();
  45.                 bw.close();
  46.         }
  47. }
复制代码


回复 使用道具 举报
  1. package fanShe;

  2. /*
  3. * 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
  4. */
  5. import java.util.ArrayList;
  6. import java.util.List;

  7. public class Test11 {

  8.         public static void main(String[] args) {
  9.                 List<Integer> list = new ArrayList<Integer>();
  10.                 for (int i = 1; i <= 100; i++) {
  11.                         list.add(i);

  12.                 }

  13.                 int last = lastOne(list);
  14.                 System.out.println("最后剩下第" + last + "个人");

  15.         }

  16.         public static int lastOne(List<Integer> list) {
  17.                 int num = 0;
  18.                 while (list.size() > 1) {
  19.                         num++;
  20.                         Integer remove = (Integer) list.remove(0);
  21.                         if (num != 14)
  22.                                 list.add(remove);
  23.                         if (num == 14) {
  24.                                 System.out.println("移除第" + remove + "个人");
  25.                                 num = 0;
  26.                         }

  27.                 }
  28.                 return list.get(0);
  29.         }
  30. }
复制代码


回复 使用道具 举报
  1. package fanShe;

  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.lang.reflect.Method;
  5. import java.util.Properties;

  6. /*
  7. *  已知一个类,定义如下:
  8. *        package cn.itcast.heima;
  9. *        public class DemoClass {
  10. *        public void run()
  11. *        {
  12. *        System.out.println("welcome to heima!");
  13. *        }   
  14. *        }
  15. *        (1) 写一个Properties格式的配置文件,配置类的完整名称。
  16. *        (2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
  17. *
  18. */
  19. public class Test07 {
  20.         public static void main(String[] args) throws Exception {
  21.                 BufferedReader br = new BufferedReader(new FileReader("a.Properties"));
  22.                 Properties p = new Properties();
  23.                 p.load(br);

  24.                 String s = p.getProperty("className");

  25.                 Class c = Class.forName(s);

  26.                 Object obj = c.newInstance();

  27.                 Method m = c.getMethod("run", null);

  28.                 m.invoke(obj, null);
  29.         }

  30. }
复制代码


回复 使用道具 举报
好的,收了
回复 使用道具 举报
蚊子先生 来自手机 中级黑马 2015-9-2 12:12:52
8#
记不住就多敲直到记住了!
回复 使用道具 举报
  1. package fanShe;

  2. import java.io.BufferedInputStream;
  3. import java.io.File;
  4. import java.io.FileInputStream;

  5. /*
  6. * 定义一个文件输入流,调用read(byte[] b)方法将exercise.txt文件中的所有内容打印出来(byte数组的大小限制为5)。
  7. */
  8. public class Test05 {
  9.         public static void main(String[] args) throws Exception {
  10.                 File file = new File("exercise.txt");
  11.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
  12.                                 file));

  13.                 byte[] bys = new byte[5];
  14.                 int len = 0;
  15.                 while ((len = bis.read(bys)) != -1) {
  16.                         String str = new String(bys, 0, len);
  17.                         System.out.print(str);
  18.                 }
  19.         }
  20. }
复制代码


回复 使用道具 举报
  1. package fanShe;

  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileReader;
  6. import java.io.FileWriter;
  7. import java.util.Arrays;

  8. /*
  9. * 已知文件a.txt文件中的内容为“bcdeadferwplkou”,
  10. * 请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。即b.txt中的文件内容应为“abcd…………..”这样的顺序。
  11. */
  12. public class Test04 {
  13.         public static void main(String[] args) throws Exception {
  14.                 File srcFile = new File("a.txt");
  15.                 File destFile = new File("b.txt");

  16.                 BufferedReader br = new BufferedReader(new FileReader(srcFile));
  17.                 String str = br.readLine();

  18.                 char[] chs = str.toCharArray();
  19.                 Arrays.sort(chs);

  20.                 BufferedWriter bw = new BufferedWriter(new FileWriter(destFile));
  21.                 bw.write(chs);
  22.                 bw.flush();
  23.         }
  24. }
复制代码


回复 使用道具 举报
  1. package fanShe;

  2. import java.util.ArrayList;
  3. import java.util.ListIterator;

  4. /*
  5. * 一个ArrayList对象aList中存有若干个字符串元素,
  6. * 现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
  7. *
  8. */
  9. public class ArrayListDemo2 {
  10.         public static void main(String[] args) {

  11.                 // 创建集合
  12.                 ArrayList<String> aList = new ArrayList<>();

  13.                 // 添加元素
  14.                 aList.add("abc");
  15.                 aList.add("abdc");
  16.                 aList.add("aasbc");
  17.                 aList.add("abc");
  18.                 aList.add("abfsdc");
  19.                 aList.add("abc");
  20.                 aList.add("asdfbc");

  21.                 // 获得List集合特有迭代器
  22.                 ListIterator<String> li = aList.listIterator();

  23.                 // 遍历集合,如果元素为abc就删除
  24.                 while (li.hasNext()) {
  25.                         if (li.next().equals("abc")) {
  26.                                 li.remove();
  27.                         }
  28.                 }

  29.                 // 打印新的集合
  30.                 System.out.println(aList);

  31.         }
  32. }
复制代码


回复 使用道具 举报
  1. package collectionDemo;

  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Random;

  5. /*
  6. * 编写程序,生成5个1至10之间的随机整数,存入一个List集合,
  7. * 编写方法对List集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),
  8. * 然后遍历集合输出。
  9. */
  10. public class ArrayListDemo3 {
  11.         public static void main(String[] args) {
  12.                 List<Integer> list = new ArrayList<>();

  13.                 for (int i = 0; i < 5; i++) {
  14.                         list.add(new Random().nextInt(11));
  15.                 }

  16.                 sort(list);
  17.                 System.out.println(list);
  18.         }

  19.         private static void sort(List<Integer> list) {
  20.                 // TODO Auto-generated method stub
  21.                 Integer[] i = list.toArray(new Integer[list.size()]);
  22.                 list.clear();

  23.                 for (int x = 0; x < i.length - 1; x++) {
  24.                         for (int y = 0; y < i.length - 1 - x; y++) {
  25.                                 if (i[y] < i[y + 1]) {
  26.                                         int temp = i[y + 1];
  27.                                         i[y + 1] = i[y];
  28.                                         i[y] = temp;
  29.                                 }
  30.                         }
  31.                 }

  32.                 for (Integer num : i) {
  33.                         list.add(num);
  34.                 }
  35.         }
  36. }
复制代码


回复 使用道具 举报
  1. package fanShe;

  2. import java.util.Arrays;
  3. import java.util.Map;
  4. import java.util.Set;
  5. import java.util.TreeMap;
  6. import java.util.TreeSet;

  7. /*
  8. * 有类似这样的字符串:“1.2,3.4,5.6,7.8,5.56,44.55”, 请按照要求,依次完成以下试题
  9. ① 以逗号作为分隔符,把已知的字符串分成一个String类型的数组,
  10. 数组中的每一个元素类似于“1.2","3.4"这样的字符串;      
  11. ② 把数组中的每一个元素以.作为分割,把.号左边的元素作为key,
  12. 把.号右边的元素作为value,封装到Map中,map中的key和value都是Object类型;        
  13. ③ 把map中的key封装到Set中,并且把set中的元素输出;
  14. ④ 把map中的value封装到Collection中,把collection中的元素输出。

  15. */
  16. public class Test80 {
  17.         public static void main(String[] args) {
  18.                 String str = "1.2,3.4,5.6,7.8,5.56,44.55";
  19.                 Map<String, String> map = new TreeMap<String, String>();

  20.                 String[] ss = str.split(",");

  21.                 for (String s : ss) {
  22.                         String[] arr = s.split("\\.");
  23.                         System.out.println(Arrays.toString(arr));
  24.                         map.put(arr[0], arr[1]);
  25.                 }

  26.                 Set<String> set = new TreeSet<String>();
  27.                 for (String key : set) {
  28.                         System.out.println(key + ":" + map.get(key));
  29.                 }
  30.         }
  31. }
复制代码


回复 使用道具 举报
  1. package studentDemo;

  2. /*
  3. * 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,
  4. * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),
  5. * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。
  6. * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。
  7. */
  8. import java.io.BufferedWriter;
  9. import java.io.File;
  10. import java.io.FileWriter;
  11. import java.util.Comparator;
  12. import java.util.Scanner;
  13. import java.util.TreeSet;

  14. public class Test {
  15.         public static void main(String[] args) throws Exception {
  16.                 TreeSet<Student> set = new TreeSet<>(new Comparator<Student>() {

  17.                         @Override
  18.                         public int compare(Student s1, Student s2) {
  19.                                 // TODO Auto-generated method stub
  20.                                 int num1 = s2.getSum() - s1.getSum();
  21.                                 int num2 = num1 == 0 ? s2.getName().compareTo(s2.getName()) : num1;
  22.                                 int num3 = num2 == 0 ? s2.getChinese() - s1.getChinese() : num2;
  23.                                 int num4 = num3 == 0 ? s2.getMath() - s1.getMath() : num3;
  24.                                 int num5 = num4 == 0 ? s2.getEnglish() - s1.getEnglish() : num4;
  25.                                 return num5;
  26.                         }
  27.                 });

  28.                 System.out.println("录入学生信息,格式为name,30,30,30(姓名,三门课成绩)。");
  29.                 for (int i = 1; i <= 5; i++) {
  30.                         Student s = new Student();

  31.                         Scanner sc = new Scanner(System.in);
  32.                         System.out.println("请录入第" + i + "位学生信息:");
  33.                         String str = sc.nextLine();

  34.                         String[] arr = str.split(",");
  35.                         s.setName(arr[0]);
  36.                         s.setChinese(Integer.valueOf(arr[1]));
  37.                         s.setMath(Integer.valueOf(arr[2]));
  38.                         s.setEnglish(Integer.valueOf(arr[3]));

  39.                         set.add(s);
  40.                 }

  41.                 File file = new File("stu.txt");
  42.                 BufferedWriter bw = new BufferedWriter(new FileWriter(file));
  43.                 bw.write("姓名\t语文\t数学\t英语\t");
  44.                 bw.newLine();
  45.                 bw.flush();

  46.                 for (Student s : set) {
  47.                         bw.write(s.getName() + "\t" + s.getChinese() + "\t" + s.getMath() + "\t" + s.getEnglish());
  48.                         bw.newLine();
  49.                         bw.flush();
  50.                 }
  51.                 bw.close();
  52.         }
  53. }
复制代码
  1. package studentDemo;

  2. public class Student {
  3.         private String name;
  4.         private int chinese;
  5.         private int math;
  6.         private int english;
  7.         private int sum;

  8.         public Student() {
  9.                 super();
  10.                 // TODO Auto-generated constructor stub
  11.         }

  12.         public String getName() {
  13.                 return name;
  14.         }

  15.         public void setName(String name) {
  16.                 this.name = name;
  17.         }

  18.         public int getChinese() {
  19.                 return chinese;
  20.         }

  21.         public void setChinese(int chinese) {
  22.                 this.chinese = chinese;
  23.         }

  24.         public int getMath() {
  25.                 return math;
  26.         }

  27.         public void setMath(int math) {
  28.                 this.math = math;
  29.         }

  30.         public int getEnglish() {
  31.                 return english;
  32.         }

  33.         public void setEnglish(int english) {
  34.                 this.english = english;
  35.         }

  36.         public int getSum() {
  37.                 return chinese + math + english;
  38.         }
  39. }
复制代码



回复 使用道具 举报
  1. package TCPDemo;
  2. /*
  3. * TCP上传文件
  4. */
  5. import java.io.BufferedInputStream;
  6. import java.io.BufferedOutputStream;
  7. import java.io.File;
  8. import java.io.FileInputStream;
  9. import java.net.Socket;

  10. /**
  11. * 客户端
  12. *
  13. * @author Kevin
  14. *
  15. */
  16. public class ClientDemo {
  17.         public static void main(String[] args) throws Exception {
  18.                 // 创建socket对象
  19.                 Socket s = new Socket("192.168.0.120", 48264);
  20.                 // 封装数据源对象
  21.                 File file = new File("a.txt");
  22.                 // 获取输入输出流对象
  23.                 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
  24.                 BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());

  25.                 // 读取文件,并写入到输出流中
  26.                 byte[] bys = new byte[1024];
  27.                 int len = 0;
  28.                 while ((len = bis.read(bys)) != -1) {
  29.                         bos.write(bys, 0, len);
  30.                         bos.flush();
  31.                 }
  32.                 // 通知服务器传送结束
  33.                 s.shutdownInput();

  34.                 // 释放资源
  35.                 s.close();
  36.                 bis.close();
  37.         }
  38. }
复制代码
  1. package TCPDemo;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileOutputStream;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;

  8. /**
  9. * 服务器端
  10. *
  11. * @author Kevin
  12. *
  13. */
  14. public class ServerDemo {
  15.         public static void main(String[] args) throws Exception {
  16.                 // 创建服务器端对象
  17.                 ServerSocket ss = new ServerSocket(48264);
  18.                 // 封装目的地文件对象
  19.                 File file = new File("copy.txt");
  20.                 // 获取客户端对象
  21.                 Socket s = ss.accept();

  22.                 // 获取输入输出流对象
  23.                 BufferedInputStream bis = new BufferedInputStream(s.getInputStream());
  24.                 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));

  25.                 // 读取流中的数据并写入到目的文件中
  26.                 byte[] bys = new byte[1024];
  27.                 int len = 0;
  28.                 while ((len = bis.read(bys)) != -1) {
  29.                         bos.write(bys, 0, len);
  30.                         bos.flush();
  31.                 }

  32.                 // 释放资源
  33.                 s.close();
  34.                 bos.close();
  35.         }
  36. }
复制代码



回复 使用道具 举报
  1. package ioTest;

  2. import java.io.File;
  3. import java.io.FileReader;
  4. import java.io.IOException;
  5. import java.io.Reader;

  6. /*
  7. * 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,
  8.    让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,
  9.    能够在读取的每行前面都加上有行号和冒号。

  10. */
  11. public class BaoZhuang {
  12.         public static void main(String[] args) throws IOException {
  13.                 File fi = new File("c:\\stu.txt");
  14.                 String s = LineFile(fi);

  15.                 System.out.println(s);
  16.         }

  17.         public static String LineFile(File fi) throws IOException {
  18.                 MyLineReader mr = new MyLineReader(new FileReader(fi));
  19.                 String s = null;
  20.                 StringBuilder sb = new StringBuilder(); // 为了让程序拥有自主控制输出,因此创建.
  21.                 mr.setLen(0); // 设置开始行号.
  22.                 while ((s = mr.MyreadLine()) != null) {
  23.                         sb.append(mr.getLen() + ":" + s + "\r\n");
  24.                 }
  25.                 return sb.toString(); // 将数据返回,让客户拥有输出权利.
  26.         }
  27. }

  28. class MyLineReader {
  29.         private int len; // 自定义行数变量
  30.         private Reader fi; // 读取数据流.

  31.         public MyLineReader(Reader fi) {
  32.                 this.fi = fi;
  33.         }

  34.         public String MyreadLine() throws IOException {
  35.                 len++; // 读取一行之后,len自增.
  36.                 StringBuilder sb = new StringBuilder(); // 将数据存储起来.
  37.                 int i = 0;
  38.                 while ((i = fi.read()) != -1) {
  39.                         if (i == '\r')
  40.                                 continue;
  41.                         if (i == '\n') // 当独到行标记时候,将数据全部返回.
  42.                                 return sb.toString();
  43.                         sb.append((char) i); // 没有到达行标记就继续读取.
  44.                 }
  45.                 if (sb.length() != 0) // StringBuilder的长度不为0,就继续返回数据.
  46.                         return sb.toString();
  47.                 return null; // 否则返回空.因为调用方法时候,是依靠返回是不是null来判断,是不是应该结束.
  48.         }

  49.         public int getLen() { // get,set方法,用来获取行号和设置行号.
  50.                 return len;
  51.         }

  52.         public void setLen(int len) {
  53.                 this.len = len;
  54.         }
  55. }
复制代码



回复 使用道具 举报
  1. /*
  2. * 28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,
  3. * 够28人喝?假如是50人,又需要买多少瓶可乐?
  4. */
  5. public class Test {
  6.         public static void main(String[] args) {
  7.                 int person = 13; // 自定义需求.
  8.                 int cola = run(person); // 接受需要购买的次数.
  9.                 System.out.println(cola);
  10.         }

  11.         public static int run(int person) {
  12.                 int lid = 0; // 盖子数
  13.                 int cola = 0; // 可以喝的可乐数
  14.                 int gouMai = 0; // 需要购买的可乐数.
  15.                 for (; cola < person; cola++) // 无论如何,可以喝的可乐都在增加.
  16.                 {
  17.                         if (lid == 3) // 当盖子够三个了,盖子数又定义为一个.
  18.                         { // 可以喝的可乐在上面已经增加了.
  19.                                 lid = 1;
  20.                         } else {
  21.                                 gouMai++;// 如果不够三个,那么就要去买了,买一瓶,盖子自然增加一个.
  22.                                 lid++;
  23.                         }
  24.                 }
  25.                 return gouMai; // 把购买的次数返回.
  26.         }
  27. }
复制代码



回复 使用道具 举报
  1. package classTest;

  2. /*
  3. * 定义一个交通灯枚举,包含红灯、绿灯、黄灯,
  4. *  需要有获得下一个灯的方法,例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。
  5. */
  6. public class Test01 {
  7.         public static void main(String[] args) {
  8.                 traffic s = traffic.RED.next(); //调用枚举元素以及方法.返回枚举元素.
  9.                 System.out.println(s);
  10.         }
  11. }
  12. enum traffic
  13. {
  14.         RED
  15.         {
  16.                 public traffic next()  //复写父类的抽象方法.返回还是枚举元素.
  17.                 {
  18.                         return GRE;
  19.                 }
  20.         },GRE
  21.         {
  22.                 public traffic next()
  23.                 {
  24.                         return YEL;
  25.                 }
  26.         },YEL
  27.         {
  28.                 public traffic next()
  29.                 {
  30.                         return RED;
  31.                 }
  32.         };
  33.         public abstract traffic next(); //枚举的抽象方法,子类需要复写.
  34. }
复制代码



回复 使用道具 举报
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9. import java.util.Set;

  10. /*
  11. * 把当前文本中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数
  12. * 并输出,例如   a : 21次   b: 12次.....
  13. */
  14. public class Test02 {
  15.         public static void main(String[] args) throws IOException {
  16.                 File fiReade = new File("c:\\a.txt");
  17.                 File fiWrite = new File("c:\\b.txt");
  18.                 IORW(fiReade, fiWrite);
  19.         }

  20.         // 1.这是一个将数据分离成字符串,并输出到指定文件的程序.(1)分离字符串,进行后续操作(2)写入文件,完成一个写入文件需求
  21.         public static void IORW(File fiReade, File fiWrite) throws IOException {
  22.                 BufferedReader br = new BufferedReader(new FileReader(fiReade));
  23.                 BufferedWriter bw = new BufferedWriter(new FileWriter(fiWrite));
  24.                 StringBuilder sb = new StringBuilder();

  25.                 String s = null;
  26.                 while ((s = br.readLine()) != null) {
  27.                         sb.append(s); // 先装进字符串.等结束后一次性给调用者.
  28.                         bw.write(s);
  29.                 }
  30.                 ergodic(sb.toString()); // 这是一个注意.应该所有数据完成之后才可以进行迭代遍历出次数.
  31.                 br.close();
  32.                 bw.close();

  33.         }

  34.         // 2.接受分离出来的字符串,然后对字符串进行遍历,并将结果存入map集合.
  35.         public static void ergodic(String s) {
  36.                 Map<Character, Integer> ma = new HashMap<Character, Integer>();
  37.                 char[] ch = s.toCharArray();

  38.                 for (int x = 0; x < ch.length; x++) {
  39.                         int num = 1;
  40.                         if (!ma.containsKey(ch[x])) {
  41.                                 ma.put(ch[x], 1);
  42.                         } else {
  43.                                 num = ma.get(ch[x]); // 这是一个应该注意的,此时要记住之前的value值,再此基础上+1
  44.                                 ma.put(ch[x], ++num);
  45.                         }
  46.                 }
  47.                 ergodicMap(ma);
  48.         }

  49.         // 3.将map集合进行迭代,
  50.         public static void ergodicMap(Map<Character, Integer> ma) {
  51.                 Set<Character> se = ma.keySet();

  52.                 for (char key : se) {
  53.                         System.out.println(key + "  : " + ma.get(key) + " 次");
  54.                 }
  55.         }
  56. }
复制代码



回复 使用道具 举报
  1. import java.util.Scanner;
  2. import java.util.TreeSet;

  3. /*
  4. * 编写程序,循环接收用户从键盘输入多个字符串,
  5. * 直到输入“end”时循环结束,并将所有已输入的字符串按字典顺序倒序打印。
  6. */
  7. public class Test03 {
  8.         public static void main(String[] args) {
  9.                 Scanner s = new Scanner(System.in);
  10.                 TreeSet<String> ts = new TreeSet<>();
  11.                 System.out.println("请开始输入:");
  12.                 while (true) {
  13.                         String str = s.nextLine(); // 字符串每次需要重新获得,因此要定义在循环内.
  14.                         if (str.equals("end")) {
  15.                                 System.out.println("输入结束");
  16.                                 break;
  17.                         } else {
  18.                                 ts.add(str);
  19.                         }
  20.                 }
  21.                 for (String str : ts) {
  22.                         System.out.println(str);
  23.                 }
  24.         }
  25. }
复制代码



回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马