zoukankan      html  css  js  c++  java
  • 统计作业

    用户界面

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="文件名"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintVertical_bias="0.0" />
    
    <EditText
        android:id="@+id/et_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text=" "
        tools:layout_editor_absoluteY="16dp"
        tools:layout_editor_absoluteX="0dp" />
    
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="内容"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="59dp" />
    
    <EditText
        android:id="@+id/et_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text=" "
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="76dp" />
    
    <Button
        android:id="@+id/btn_write"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="保存"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="119dp" />
    
    <Button
        android:id="@+id/btn_analysis"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="解析"
        tools:layout_editor_absoluteX="88dp"
        tools:layout_editor_absoluteY="119dp" />
    
    <TextView
        android:id="@+id/tv_read"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" "
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="167dp" />
    

    主要代码

    保存代码

    private void write() {
        String filename = et_name.getText().toString();
        String filecontent = et_content.getText().toString();
        try {
            if (Environment.getExternalStorageState().equals
                    (Environment.MEDIA_MOUNTED)) {
                File sdCardDir = Environment.getExternalStorageDirectory();
                FileOutputStream fos = new FileOutputStream(sdCardDir.getCanonicalPath()
                        + "/" + filename + ".txt");
                fos.write(filecontent.getBytes("UTF-8"));
                fos.close();
                Toast.makeText(this, "数据保存到" + filename + ".txt" + "文件中了", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "未找到SD卡", Toast.LENGTH_SHORT).show();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    分析代码

    private void analysis() {
        String str = " ";
        int words = 0;
        int chars = 0;
        int lines = 0;
        int spaces = 0;
        int marks = 0;
        int character = 0;
    
        String filename = et_name.getText().toString();
        FileInputStream fis = null;
        BufferedReader br = null;
        try {
            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
                File file = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + "/" + filename + ".txt");
            if (file.exists()) {
                fis = new FileInputStream(file);
                br = new BufferedReader(new InputStreamReader(fis));
            while ((str = br.readLine()) != null) {
            char[] b = str.toCharArray();
            for (int i = 0; i < str.length(); i++) {
            if (b[i] == ' ') {
                spaces++;
                            } else if (b[i] == ',' || b[i] == '.') {
                                marks++;
    
                            }
                        }
                        words += str.split("[ \.,]").length;
                        chars += str.length();
                        lines++;
                    }
                    character = chars - (spaces + marks);
                    fis.close();
    
                    tv_read.setText("单词数:" + words + ",字符数:" + chars + ",行数:" + lines + ",字母数:" + character + ",空格数:" + spaces + ",标点符号数:" + marks);
                } else {
                    Toast.makeText(this, "不存在该文件", Toast.LENGTH_SHORT).show();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    


    个人项目所耗时间

  • 相关阅读:
    MVC 5 Scaffolder + EntityFramework+UnitOfWork Pattern 代码生成工具集成Visual Studio 2013
    Asp.Net MVC +EntityFramework主从表新增编辑操作的实现(删除操作怎么实现?)
    asp.net MVC 5 Scaffolding多层架构代码生成向导开源项目(邀请你的参与)
    Asp.net mvc 5 CRUD代码自动生成工具- vs.net 2013 Saffolding功能扩展
    Asp.net webform scaffolding结合Generic Unit of Work & (Extensible) Repositories Framework代码生成向导
    MVC中的默认Model绑定者DefaultModelBinder
    MVC中Action参数绑定的过程
    MVC中Action的执行过程
    MVC的控制器的激活过程,我们从MvcHandler开始讲,前面的事情以后再讲
    d
  • 原文地址:https://www.cnblogs.com/szj1996/p/6624545.html
Copyright © 2011-2022 走看看