第三次Java实验报告
Java实验报告
班级 计科二班 学号20188437 姓名 何磊
完成时间 2019/9/22
评分等级
实验三 String类的应用
- 实验目的
- 掌握类String类的使用;
- 学会使用JDK帮助文档;
- 实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
- 统计该字符串中字母s出现的次数。
- 统计该字符串中子串"is"出现的次数。
- 统计该字符串中单词"is"出现的次数。
- 实现该字符串的倒序输出。
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
3.已知字符串"ddejidsEFALDFfnef2357 3ed"。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
- 实验过程(请自己调整格式)
1.(一)实验代码
package第三次java实验;
public class Thisisatestofjava {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count=0;
String s="this is a test of java";
System.out.println((","+s+",").split("s").length-1);
//方法一:split函数对字符串s在"s"位置进行拆分,然后通过.length得到拆分后的字符串的个数,减1得到"s"出现的次数
char c[]=s.toCharArray();
for(char e:c){
if(e=='s'){
count++;
}
}
//方法二:用toCharArray函数将字符串s变成字符数组,用foreach循环对字符数组进行遍历,判断并计数
System.out.println((","+s+",").split("is").length-1); //同上方法一
System.out.println((","+s+",").split(" is ").length-1); //同上
for (int i=c.length-1;i>= 0;i--) {
System.out.print(c[i]);
}
//利用字符数组下标递减输出
StringBuffer buffer = new StringBuffer(s);
System.out.println("\n"+buffer.reverse());
//定义成一个StringBuffer类,用StringBuffer类中的reverse()方法直接倒序字符串。
}
}
(二)运行结果
2.(一)实验代码
package 第三次java实验; import java.util.Scanner; public class 加密解密 { public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String s=input.nextLine(); //输入一个字符串
int length=s.length(); //取得字符串长度
char c[]=s.toCharArray(); //将字符串拆分为单个字符
if(length>2){ //如果字符串长度大于2进入循环
String p=s.substring(length-3); //截取字符串最后3位字符
for(int j=length-4;j>=0;j--){ //将字符串后移3位
c[j+3]=c[j];
}
char c1[]=p.toCharArray(); //将截取后的字符串拆分为单个字符
for(int k=0;k<3;k++){ //将截取的字符连接到字符数组前3位
c[k]=c1[k];
}
System.out.println(c); //输出
}
else{ //字符串长度小于3直接输出字符串
System.out.println(s);
}
for(int i=0;i<length;i++){ //将每个字符的ASCLL码值向后偏移三位
c[i]=(char)(c[i]+3);
}
System.out.println(c); //输出
}
}
(二)运行结果
3.(一)实验代码
package第三次java实验;
public class统计字符串 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int ABC=0,abc=0,other=0;
String s="ddejidsEFALDFfnef2357 3ed";
char c[]=s.toCharArray();
for(char e:c){
if(e>='A'&&e<='Z'){
ABC++;
}
else if(e>='a'&&e<='z'){
abc++;
}
else{
if(e!=' '){
other++;
}
}
}
System.out.print("大写字母数:"+ABC+"\n小写字母数:"+abc+"\n非英文字母数:"+other);
}
}
(二)运行结果
- 总结:
本次实验主要内容为字符串的处理,要学会善于利用String类和StringBuffer类中的方法。
加密解密题输入空格会导致只能输出空格前的字符,发现next()输入遇到空格时结束输入,改为nextLine()后解决。
同一问题有多种方法可以解决,举一反三就能学到更多。
本周学习了Java常用类库中的StringBuffer类以及package包的引用等,主要是一些概念类的知识,需要课余加以记忆巩固。
最新文章
- Go语言实战 - revel框架教程之用户注册
- 将UINavgationController的push改成从左到右
- 79 两个整数集合A和B,求其交集
- (实用篇)PHP中unset,array_splice删除数组中元素的区别
- Jquery设置select控件指定text的值为选中项
- angular todo
- flex 4 写皮肤
- 用PowerDesigner生成自定义建表语句
- Appium Android Bootstrap源码分析之启动运行
- Eclipse Jetty插件安装
- 安装Leanote极客范的云笔记
- Adobe Audition 基本使用
- HBASE表设计
- CentOS 7.4上安装mysql 8.0
- 007_Python中的__init__,__call__,__new__
- EJB到底是什么
- React Render Props 模式
- curl 上传文件
- SVN常用操作介绍
- python爬虫脚本下载YouTube视频
热门文章
- ubunut:子进程 post-installation script 返回了错误号 1
- 018_linuxC++之_抽象类的引入
- (vue.js)Vue element tab 每个tab用一个路由来管理?
- [JSOI 2016] 最佳团体(树形背包+01分数规划)
- 第02组团队Git现场编程实战
- 五一培训 清北学堂 DAY5
- Appium基础教程
- P2089 烤鸡
- scarpy crawl 爬取微信小程序文章
- zookeeper系列(九)zookeeper的会话详解