一、实验目的

  1. String类中处理字符串方法的使用
  2. 从命令行传递参数给main方法的编程及运行
  3. 文件类及文件输入输出

二、实验内容

  1. 【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是否是合法的密码。假定密码规则如下:
  • 密码必须至少有8个字符。
  • 密码只能包括数字和字母。
  • 密码必须至少有2个数字。
      编写一个程序,提示用户输入密码,如果该密码符合规则就显示“Valid Password”,否则显示“Invalid Password”。

1.1 程序代码:

import java.util.*;
public class program1{public static void main(String[] args){//输入密码Scanner input = new Scanner(System.in);System.out.println("密码要求如下:"+ "\n1.密码必须至少有8个字符。"+ "\n2.密码只能包括数字和字母。"+ "\n3.密码必须至少有2个数字。"+ "\n请输入一个密码:");String password = input.nextLine();//检测密码的合法性if(CheckPassword(password))System.out.println("Valid Password");elseSystem.out.println("Invalid Password");}//main函数结束//检测密码合法性方法public static boolean CheckPassword(String password){int countNumber = 0;//对每个字符进行对应处理for(int i=0; i<password.length(); i++){//判断是否为字母if(Character.isLetter(password.charAt(i)) )continue;//判断是否为数字else if(Character.isDigit(password.charAt(i)) )countNumber++;elsereturn false;}if(countNumber>=2 && password.length()>=8)return true;elsereturn false;}//方法CheckPassword结束
}//class结束

1.2 运行结果:

  运行结果正确,符合要求,输入四次密码,前三次各有一个条件不满足,所以均是不合格,最后一个密码则符合三个要求。

1.3 心得体会:
  这道密码验证是否合格题目主要是字符串基本方法isLetter(a)、isDigit(b)、charAt( i )等方法的运用。了解并熟悉运用字符串的相关基本方法即可。


  1. 【统计一个字符中的字符数、单词数和行数】编写程序统计一个文件中的字符数(控制字符\r和\n除外)、单词数以及行数。单词由空格、Tab、回车或换行符分隔。文件名作为命令行参数传递。如下图所示:

1.1 程序代码:

import java.io.*;
import java.util.*;public class program2{public static void main(String[] args) throws Exception{//文件不存在则退出if(args.length!= 1){System.out.println("File " + args[0] + " does not exists");System.exit(1);}//文件存在File file = new File(args[0]);int numberOfCh = 0;int numberOfWords = 0;int numberOfLines = 0;try(Scanner input = new Scanner(file);){while(input.hasNext()){//读取test中的一行String ch = input.nextLine();//将每一行中以空格分割成单词String[] words = ch.split(" ");//统计单词数numberOfWords += words.length;//统计字符数numberOfCh += ch.length();//统计行数numberOfLines++;}//while结束//输出文件中的字符数、单词数、行数System.out.println("File " + args[0] +" has\n" + numberOfCh
+ " characters\n" + numberOfWords + " words\n" + numberOfLines + " lines");}}//main结束
}//class结束

1.2 运行结果:

  运行正确,符合题目要求,能够正确输出test文件中的字符数、单词数、行数

1.3 心得体会:
  本程序需要掌握文本读取、字符串的基本处理。将整个文本先分成行,统计每行的字符数和单词数再相加即可。


  1. 【读写数据】编写一个程序,如果名为Exercise9_19.txt的文件不存在,则创建该文件。使用文本I/O编写随机产生10个整数给文件。文件中的整数由空格分开。从文件中读回这些数据,然后显示排好序的数据。

3.1 程序代码:

import java.io.*;
import java.util.*;public class program3{public static void main(String[] args) throws Exception{File file = new File("Exercise9_19.txt");if(file.exists()){System.out.println("File Exercise9_19.txt already exists");  }//产生10个随机整数给文件PrintWriter output = new PrintWriter(file);for(int i=0; i<10; i++){if(i==9)output.print( (int)(Math.random()*100) );elseoutput.print( (int)(Math.random()*100) + " ");}   output.close();//从文件读取数据并赋给数组Scanner input = new Scanner(file);ArrayList<Integer> a = new ArrayList<>();while(input.hasNext()){int number = input.nextInt();a.add(number);}input.close();//对数组进行排序并输出Collections.sort(a);for(int e: a)System.out.print(e + " ");System.out.println();}//main结束
}//class结束

3.2 运行结果:


  运行结果正确,若Exercise9_19.txt不存在,创建该文件并用文本I/O赋予10个随机整数,再用文本I/O读取这些整数并排序后输出,若Exercise9_19.txt存在,则直接用文本I/O赋予10个整数,再用文本I/O读取这些整数并排序后输出。

3.3 心得体会:
  文本I/O操作要注意文件参数传递,检查文件是否存在及打开文件后记得关闭。后续读取数据存放在数组中,调用ArrayList中sort方法即可进行迅速排序,再使用foreach循环或者for、while等循环输出排序后的数组即可。


Java实验7《字符串和文本I/O 》相关推荐

  1. java浏览器实验报告_关于java实验报告模板

    关于java实验报告模板 1.掌握Java Applet的程序结构和开发过程. 2.学会编写Applet对应的HTML文件,掌握从HTML文件向Applet传递参数的方法. 3. 掌握文本框对象的使用 ...

  2. java实验3_Java实验3

    实验3 常用类(2学时) 一.实验目的 1. 熟悉Java中的String.StringBuffer.Math.包装器类.Scanner类的使用方法. 2. 使用常用类解决一般性的应用问题. 3. 掌 ...

  3. 【Java实现基于关键词的文本排序检索系统】

    Java实现基于关键词的文本排序检索系统@TOC 注:个人的学习记录,勿用于其它途径 实验要求: (1)利用TF-IDF模型,为文本库中的文本创建索引(如倒排索引). (2)用户输入的关键词可以是一个 ...

  4. java实验报告 05 类与_java程序设计类与方法-java实验报告

    java程序设计类与方法-java实验报告 java程序设计类与方法-java实验报告 1. 实验内容或题目 (1) 编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并 ...

  5. Java中操作字符串的工具类-判空、截取、格式化、转换驼峰、转集合和list、是否包含

    场景 某些常用的对字符串进行处理的方法抽离出来成工具类,方便在多处应用. 常用的操作为: 判断是否为空 截取字符串 格式化文本 字符串转set 字符串转list 下划线转驼峰命名 是否包含字符串 注: ...

  6. 20165310 Java实验五《网络编程与安全》

    20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...

  7. java 限制文本框长度_[Java教程]如何限制textarea文本框的输入字数

    [Java教程]如何限制textarea文本框的输入字数 0 2015-12-24 15:00:10 如何限制textarea文本框的输入字数: 在实际应用中,往往需要限制文本框的输入字数的长度,下面 ...

  8. java 字符串文字筛选_重新开始Java的原始字符串文字讨论

    java 字符串文字筛选 在2018年12月宣布 将从JDK 12中删除原始字符串文字 . 现在,在新的一年中,与Java中原始字符串文字的设计有关的讨论又开始了. 在琥珀色专家OpenJDK邮件列表 ...

  9. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  10. 重新开始Java的原始字符串文字讨论

    在2018年12月宣布 将从JDK 12中删除原始字符串文字 . 现在,在新的一年中,与Java中原始字符串文字的设计有关的讨论又开始了. 在琥珀色专家OpenJDK邮件列表上的" 原始字符 ...

最新文章

  1. 【ACM】杭电OJ 2010
  2. Pandas matplotlib 无法显示中文 Ubuntu16.04
  3. 刘奕佳: 我的职校新生活 | 班级日常分享
  4. linux生成文件自带时间,linux生成固定日期文件及删除一定日期前的文件
  5. python语言原理_梯度下降算法的原理用Python语言实现,易于理解,python,更
  6. python3 如何读中文路径_Python3操作pdf文件之ReportLab
  7. IntelliJ IDEA 2017.3-2018.1 全系列汉化包
  8. BZOJ1822[JSOI2010] 冷冻波
  9. php 坏了怎么修复,winload.exe丢失或损坏怎么办
  10. 一、信号处理 ——3.维纳滤波(含matlab代码)
  11. jszip打包下载文件
  12. Python env
  13. 内连接(inner join)与外连接(outer join)小结
  14. Python金融系列第六篇:现代投资组合理论
  15. BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
  16. mac连接android手机存储,Android安卓设备连接Mac的方法
  17. 还在为电脑装机而发愁吗?想摆脱装机时的捆绑软件吗?赶紧戳进来瞅瞅
  18. 微信小程序的事件处理,已整理成文档
  19. python替换所有标点符号 正则_Python处理中文标点符号大集合
  20. adb connect 远程adb连接手机无法连接,显示由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。(10060)windows调试Linux解决方式 ip连接方式

热门文章

  1. 上海韬源信息技术有限公司怎么样
  2. 用沐神的方法阅读PyTorch FX论文
  3. ppt高级动画效果如何循环起来?
  4. 关于站群的教程,迷途知返不晚
  5. 南大通用参加1024程序员节 沉淀自主知识产权 共建中国标准
  6. 数据库管理系统(基于前端+后端+数据库)
  7. Android10 编译错误
  8. 文章标题 SPOJ - DRUIDEOI : Fata7y Ya Warda!(单调栈)
  9. 有史以来最全的CMD命令
  10. 什么是物联网?通过例子了解物联网,物联网的层次架构,物联网的应用