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();
        }
    }
    


    个人项目所耗时间

  • 相关阅读:
    【转】多线程:深入了解线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)
    Mono初接触
    计算机颜色格式( 8位 16位 24位 32位色)
    我爱源代码
    Linux小白教程: tar的几种常用格式
    Linux小白教程:查看当前Linux的发行版本、内核(kernel)版本
    10大糟糕预测:
    一日编程小悟
    Linux小白教程:vi(shell文本编辑器)保存、退出命令
    C结构体中的函数指针与函数
  • 原文地址:https://www.cnblogs.com/szj1996/p/6624545.html
Copyright © 2011-2022 走看看