Java实验7《字符串和文本I/O 》
一、实验目的
- String类中处理字符串方法的使用
- 从命令行传递参数给main方法的编程及运行
- 文件类及文件输入输出
二、实验内容
- 【检测密码】一些网站设定了一些指定密码的规则。编写一个方法,检测一个字符串是否是合法的密码。假定密码规则如下:
- 密码必须至少有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 )等方法的运用。了解并熟悉运用字符串的相关基本方法即可。
- 【统计一个字符中的字符数、单词数和行数】编写程序统计一个文件中的字符数(控制字符\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 心得体会:
本程序需要掌握文本读取、字符串的基本处理。将整个文本先分成行,统计每行的字符数和单词数再相加即可。
- 【读写数据】编写一个程序,如果名为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 》相关推荐
- java浏览器实验报告_关于java实验报告模板
关于java实验报告模板 1.掌握Java Applet的程序结构和开发过程. 2.学会编写Applet对应的HTML文件,掌握从HTML文件向Applet传递参数的方法. 3. 掌握文本框对象的使用 ...
- java实验3_Java实验3
实验3 常用类(2学时) 一.实验目的 1. 熟悉Java中的String.StringBuffer.Math.包装器类.Scanner类的使用方法. 2. 使用常用类解决一般性的应用问题. 3. 掌 ...
- 【Java实现基于关键词的文本排序检索系统】
Java实现基于关键词的文本排序检索系统@TOC 注:个人的学习记录,勿用于其它途径 实验要求: (1)利用TF-IDF模型,为文本库中的文本创建索引(如倒排索引). (2)用户输入的关键词可以是一个 ...
- java实验报告 05 类与_java程序设计类与方法-java实验报告
java程序设计类与方法-java实验报告 java程序设计类与方法-java实验报告 1. 实验内容或题目 (1) 编写Java应用程序,实现以下功能:当应用程序运行后,根据屏幕提示进行交互式输入并 ...
- Java中操作字符串的工具类-判空、截取、格式化、转换驼峰、转集合和list、是否包含
场景 某些常用的对字符串进行处理的方法抽离出来成工具类,方便在多处应用. 常用的操作为: 判断是否为空 截取字符串 格式化文本 字符串转set 字符串转list 下划线转驼峰命名 是否包含字符串 注: ...
- 20165310 Java实验五《网络编程与安全》
20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...
- java 限制文本框长度_[Java教程]如何限制textarea文本框的输入字数
[Java教程]如何限制textarea文本框的输入字数 0 2015-12-24 15:00:10 如何限制textarea文本框的输入字数: 在实际应用中,往往需要限制文本框的输入字数的长度,下面 ...
- java 字符串文字筛选_重新开始Java的原始字符串文字讨论
java 字符串文字筛选 在2018年12月宣布 将从JDK 12中删除原始字符串文字 . 现在,在新的一年中,与Java中原始字符串文字的设计有关的讨论又开始了. 在琥珀色专家OpenJDK邮件列表 ...
- java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧
java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...
- 重新开始Java的原始字符串文字讨论
在2018年12月宣布 将从JDK 12中删除原始字符串文字 . 现在,在新的一年中,与Java中原始字符串文字的设计有关的讨论又开始了. 在琥珀色专家OpenJDK邮件列表上的" 原始字符 ...
最新文章
- 【ACM】杭电OJ 2010
- Pandas matplotlib 无法显示中文 Ubuntu16.04
- 刘奕佳: 我的职校新生活 | 班级日常分享
- linux生成文件自带时间,linux生成固定日期文件及删除一定日期前的文件
- python语言原理_梯度下降算法的原理用Python语言实现,易于理解,python,更
- python3 如何读中文路径_Python3操作pdf文件之ReportLab
- IntelliJ IDEA 2017.3-2018.1 全系列汉化包
- BZOJ1822[JSOI2010] 冷冻波
- php 坏了怎么修复,winload.exe丢失或损坏怎么办
- 一、信号处理 ——3.维纳滤波(含matlab代码)
- jszip打包下载文件
- Python env
- 内连接(inner join)与外连接(outer join)小结
- Python金融系列第六篇:现代投资组合理论
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡
- mac连接android手机存储,Android安卓设备连接Mac的方法
- 还在为电脑装机而发愁吗?想摆脱装机时的捆绑软件吗?赶紧戳进来瞅瞅
- 微信小程序的事件处理,已整理成文档
- python替换所有标点符号 正则_Python处理中文标点符号大集合
- adb connect 远程adb连接手机无法连接,显示由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。(10060)windows调试Linux解决方式 ip连接方式