zoukankan      html  css  js  c++  java
  • 第二次课的作业 统计分析

    根据我多年的编程经验(好吧,只有一年),这个问题我分成三部分来做吧。第一部分是文件的读写。第二部分是读取单词并判断,第三点是计数器。那么今天我的主要成就是,文件的读取。嗯没有错,我只做了这一项。但是我算是攻克了一个蛮大的问题。我之前就在atm的问题上卡住了读取,这一次又是读取。还是以读取为主。不过这一次,我成功的完成了这一部分。好吧,多说无益,上代码

     1 package com.campu; 
     2   
     3 import java.io.BufferedInputStream; 
     4 import java.io.BufferedReader; 
     5 import java.io.File; 
     6 import java.io.FileInputStream; 
     7 import java.io.InputStreamReader; 
     8 import java.io.Reader; 
     9   
    10 
    11 public class H20121012 { 
    12   
    13   public static void readTxtFile(String filePath){ 
    14     try { 
    15         String encoding="GBK"; 
    16         File file=new File(filePath); 
    17         if(file.isFile() && file.exists()){ //判断文件是否存在 
    18           InputStreamReader read = new InputStreamReader( 
    19           new FileInputStream(file),encoding);//考虑到编码格式 
    20           BufferedReader bufferedReader = new BufferedReader(read); 
    21           String lineTxt = null; 
    22           while((lineTxt = bufferedReader.readLine()) != null){ 
    23             System.out.println(lineTxt); 
    24           } 
    25           read.close(); 
    26     }else{ 
    27       System.out.println("找不到指定的文件"); 
    28     } 
    29     } catch (Exception e) { 
    30       System.out.println("读取文件内容出错"); 
    31       e.printStackTrace(); 
    32     } 
    33     
    34   } 
    35     
    36   public static void main(String argv[]){ 
    37     String filePath = "F:\\新建文本文档.txt"; 
    38 //   "res/"; 
    39     readTxtFile(filePath); 
    40   } 
    41  
    42 } 
     1 package com.campu;
     2 import java.util.HashMap;
     3 import java.util.Iterator;
     4 
     5 public class Has {
     6   // 统计单词出现的次数
     7     public static String StatList(String str) {
     8    StringBuffer sb = new StringBuffer();
     9    HashMap<String ,Integer> has = new HashMap<String ,Integer> (); // 打开一个哈希表
    10    String[] slist = str.split(" ");
    11    for (int i = 0; i < slist.length; i++) {
    12          if (!has.containsKey(slist[i])) { // 若尚无此单词
    13                  has.put(slist[i], 1);
    14          } else {//如果有,就在将次数加1
    15                 Integer nCounts = has.get(slist[i]);
    16                  has.put(slist[i],nCounts+1 );
    17         }
    18      }
    19 //遍历map
    20      Iterator iterator = has.keySet().iterator();
    21       while(iterator.hasNext()){
    22              String word = (String) iterator.next();
    23              sb.append("单词:").append(word).append(" 次数").append(has.get(word)).append("
    ");
    24       }
    25       return sb.toString();
    26 }
    27   
    28 public static void main(String[] args) {
    29     
    30         String s=null;
    31         H20121012.readTxtFile(s);
    32                 
    33         System.out.println(StatList(s));
    34 }
    35 }

    Copy了一些,可是我真的没办法。就像是刚从新手村毕业的菜鸟,拎着初级装备去打满级boss,所有技能都扔出去了还是被人家吊着锤。不借助外援还玩个毛线。拼接代码很辛苦,改代码更辛苦。网上的代码基本上都用不了,人家的包都是现成的。我这边只能一点点的借用,还得不停地改....辛苦的亚匹还没啥效果....改成这样,虽然很难看,但是到底是能运行了,我也就不去吹毛求疵了....

    整个实验的思想

    化繁为简

    实验分两段,读取和搜索

    读取方面无法再细分了,也没必要细分了

    搜索方面分两部分

    计算与存取

    计算可以用循环

    存取可以用数组

    最后把各部分拼在一起就完事了

     

     1 package 素数输出;
     2 import java.util.Scanner;
     3 public class shuchu {
     4     public static void main(String[] args) {
     5         Scanner sc = new Scanner(System.in);
     6         System.out.println("请输入一个正整数");
     7         int num1 = sc.nextInt();
     8         Scanner kb = new Scanner(System.in);
     9         System.out.println("请输入一个正整数");
    10         int num2 = kb.nextInt();
    11         boolean numb = true;
    12         int PrimeCount=0;
    13         for (int i =num1 ; i <=num2; i+=2) {
    14             int k = (int) Math.sqrt(i);
    15             numb= true;
    16             for (int j = 2; j <= k; j++) {
    17                 if (i % j == 0) {
    18                     numb = false;
    19                     break;
    20                 }
    21             }
    22             if (numb) {
    23                 PrimeCount++;
    24                 System.out.print(i+"	");
    25                 if(PrimeCount%5==0){
    26                     System.out.println();
    27                 }
    28             }
    29         }
    30     }
    31 }
    1. 首先用import java.util.Scanner;

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入一个正整数");

    int num1 = sc.nextInt();

    来输入两个整数,来控制素数的取舍范围

    2.

    for (int i =num1 ; i <=num2; i+=2) {

    int k = (int) Math.sqrt(i);

    numb= true;

    for (int j = 2; j <= k; j++) {

    if (i % j == 0) {

    numb = false;

    break;

    }

    }

    素数判断,和c一样,很简单

    3.空行

    if (numb) {

    PrimeCount++;

    System.out.print(i+" ");

    if(PrimeCount%5==0){

    System.out.println();

    %5控制行的个数

    System.out.println();是空行语句println转行,print不转行

    实验心得:

    语句和c有相似,也有不同。

    语句的控制相较于c,更精准

    感觉没什么困难

    import java.util.Scanner;

    public class HuiWenTest {

    private static Scanner sc;

    /**

     * @SERLIN

     */

    public static void main(String[] args) {

    String str = "";

    System.out.println("请输入一个字符串");

    sc = new Scanner(System.in);

    str = sc.next();

    StringBuffer sb = new StringBuffer(str);

    sb.reverse();//

    int count = 0;

    for (int i = 0; i < str.length(); i++) {

    if (str.charAt(i) == sb.charAt(i)) {

    count++;

    }

    }

    if (count == str.length()) {

    System.out.println("此字符串是一个回文字符串");

    } else {

    System.out.println("此字符串不是一个回文字符串");

    }

    }

    }

    实验总结::

    这里采用的是一个倒置式匹配方式

    for (int i = 0; i < str.length(); i++) {

    if (str.charAt(i) == sb.charAt(i)) {

    count++;

    }

    }

    if (count == str.length()) {

    这里的循环是一个重点

    System.out.println("请输入一个字符串");

    sc = new Scanner(System.in);

    str = sc.next();

    这里的提示语和输入也很重要

     

     

  • 相关阅读:
    QSPI
    温度标准
    minigui占用空间的情况
    引导页的展示
    Xcode6.0以后SVN的配置
    【转】iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
    SDWebImage最新使用
    OC设计模式
    Objective-c的@property 详解
    iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换
  • 原文地址:https://www.cnblogs.com/jyt123/p/9775403.html
Copyright © 2011-2022 走看看