第五周课程总结&试验报告(三)

2023-05-16

第五周课程总结&试验报告(三)

实验三 String类的应用

实验目的

掌握类String类的使用;
学会使用JDK帮助文档;

实验内容

###1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

统计该字符串中字母s出现的次数。
统计该字符串中子串“is”出现的次数。
统计该字符串中单词“is”出现的次数。
实现该字符串的倒序输出。

实验代码

package 作业;

public class zifu {
    public static void main(String[] args) {
        String s = "this is a test of java";  定义赋值
        int n = s.indexOf("s",3);      定义,查找指定位置字符"s"
        System.out.println(+n);    输出s数量
        int a = s.indexOf("is");        定义,查找指定位置字符"is"
        System.out.println(+a);    输出is数量
        int b = (s.split(" is ")).length - 1;                    用拆分字符串的方法来求单词"is"的数量,也就是当初现前后有空格的"is"时,对字符串进行拆分
        System.out.println("单词is出现的次数" + b);     并把计算拆分好的字符串的数量,在其基础是减一,就获得了前后又空格的"is"的数量;
        StringBuffer r = new StringBuffer ("this is a test of java");     利用StringBuffer reverse方法,对字符串内容进行反转保存
        System.out.println(r.reverse());

    }

}

1579991-20190926172225458-1668165062.png

1579991-20190926172636449-1617410804.png

本来是想把空格作为拆分条件对字符串进行拆分,定义赋值b='is”然后用equals把b与拆分后的字符串进行比较,如果相等,则count++,以此来求出单词is的数量,但输出错误了,刚好看到StringBuffer reverse

方法觉得这种方法更加便利和简洁,所以换StringBuffer reverse方法来求单词is。本题总体来说还是很简单的,灵活运用String和StringBuffer的构造方法就能解决。

2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。

package 作业;

import java.util.Scanner;

public class psw {
    public static void main(String[] args) {
        @SuppressWarnings("resource")         代码没问题,只是取消一些特定代码段中的警告
        Scanner s = new Scanner(System.in);     定义scanner,等待输入
        System.out.println("输入字符串:");
        String r = s.nextLine();                          读取输入内容
        char t[] = new char[r.length()];                创建字符数组t
        t=r.toCharArray();                                 将用户输入的字符串通过toCharArray()转化为字符数组存到t中
        int i;
        for (i=0;i<t.length;i++) {
            t[i]=(char)(t[i]+3);                将一般的数组字符直接加3然后强制类型转化为char类型
        }
        String c=" ";                             定义字符串并使其赋值为空
        for (i=0;i<r.length();i++) {            将字符数组转化为字符串
            c=c+t[i];                    
        }
        System.out.println("改变后的字符串:\n"+c);       输出
    }
}

1579991-20190926174310170-546381380.png

1579991-20190926174314346-1536987914.png

在前面发现自己定义的字符串s出现了警告,结果发现代码没问题,最后用@SuppressWarnings("resource")消除了警告,在写代码时,

for循环里;i<t.length,我之前多加了一个等号,所以输出时出现了错误,最后发现并改正,代码就没问题了,本题没有什么做题思路,以为思路都已经给了出来。

3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。

package 作业;

public class 输出 {
    public static void main(String[] args) {
        String s = "ddejidsEFALDFfnef2357 3ed";       定义赋值
        int small=0,big=0,i,not=0;
        for (i=0;i<s.length();i++) {           利用for循环对字符串进行沥遍
            char c=s.charAt(i);             从中依次取出字符,并转换赋值给数组c
            if (Character.isLowerCase(c)) {     利用Character.isLowerCase判段取出来的字符是否为小写
                small++;                                 
            }
            else if (Character.isUpperCase(c)){   利用Character.isUpperCase(c)判断字符是否为大写
                big++;
            }
        }
        not=s.length()-small-big;    求出非英文字母数
        System.out.println("大写字母个数:"+big);
        System.out.println("小写字母个数:"+small);  输出
        System.out.println("非英语字母个数:"+not);
    }
}

1579991-20190926175710965-1573617331.png

1579991-20190926175716630-101354266.png

错误的时候还没完全来了解Character.isLowerCase和Character.isUpperCase,我出错的地方是我填了i,这两个方法里面要填数组名,之后去百度了解了,定义一个数组c,并把s的内容转换赋值给数组c,

char c=s.charAt(i);用这个语句取出每一个字符元素,并执行if和else if语句,求出答案。

总结

这是我本周自学了一小点,学习了Stringbuffer和大小写字符的判断。

Character character = 'A';
// isDigit方法判断字符是否为数字
boolean isDigit = Character.isDigit(character);
System.out.println("isDigit="+isDigit);
// isLetter方法判断字符是否为字母
boolean isLetter = Character.isLetter(character);
System.out.println("isLetter="+isLetter);
// isLowerCase方法判断字符是否为小写
boolean isLowerCase = Character.isLowerCase(character);
System.out.println("isLowerCase="+isLowerCase);
// isUpperCase方法判断字符是否为大写
boolean isUpperCase = Character.isUpperCase(character);
System.out.println("isUpperCase="+isUpperCase);

StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。

reverse方法

public StringBuffer reverse()

该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。例如:

StringBuffer sb = new StringBuffer(“abc”);

sb.reverse();

经过反转以后,对象sb中的内容将变为”cba”。

setCharAt方法

public void setCharAt(int index, char ch)

该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。例如:

StringBuffer sb = new StringBuffer(“abc”);

sb.setCharAt(1,’D’);

则对象sb的值将变成”aDc”。

继承:

    1.子类继承父类的成员变量
  1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
  2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
  3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。
  2.子类继承父类的方法
  同样地,子类也并不是完全继承父类的所有方法。
  1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
  2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
  3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用。
  注意:隐藏和覆盖是不同的。隐藏是针对成员变量和静态方法的,而覆盖是针对普通方法的。(后面会讲到)
  3.构造器
  子类是不能够继承父类的构造器,但是要注意的是,如果父类的构造器都是带有参数的,则必须在子类的构造器中显示地通过super关键字调用父类的构造器并配以适当的参数列表。如果父类有无参构造器,则在子类的构造器中用super关键字调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。
       注意一个子类只能继承一个父类,但我们可以用多层继承来实现多重继承,继承是要用到extends,格式是: class 子类 extends 父类{ }。
       子类实例化前会先调用父类构造方法再用子类。
    ###方法的覆写:最好每个类加上一个无参构造,而且子类覆写的方法权限只增不减的,相比与父类。

###重载与覆写的区别
重载:方法名相同参数不同,两个可以同时用,用参数区分开。
覆写:方法名相同参数相同,即上一个方法作废。
重载,简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
覆写(Override)的两个函数的函数特征相同,重载(Overload)的两个函数的函数名虽然相同,但函数特征不同。 函数特征包括函数名,参数的类型和个数。

###注意:super与this不能同时用,以为它们都要放在首行。
  不同点: 
  1、super()主要是对父类构造函数的调用,this()是对重载构造函数的调用 
  2、super()主要是在继承了父类的子类的构造函数中使用,是在不同类中的使用;this()主要是在同一类的不同构造函数中的使用    
 相同点: 
 1、super()和this()都必须在构造函数的第一行进行调用,否则就是错误的

###final:
final声明的类不能有子类
final声明的方法不能被子类所覆写
final声明的变量即成为常量,常量不能修改
###抽象类:
有点像模板,且一个子类只能继承一个抽象类。
抽象类的使用原则如下:
抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public;
抽象类不能直接实例化,需要依靠子类采用向上转型的方式处理;
抽象类必须有子类,使用extends继承,一个子类只能继承一个抽象类;
子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。);

本周所讲课堂内容我已经消化的七七八八了,作业也用心去完成了,本周也自学了一些东西,继续努力。

转载于:https://www.cnblogs.com/neir/p/11593265.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第五周课程总结&试验报告(三) 的相关文章

  • 实验六

    芯片派生 include lt iostream gt using namespace std class Base public void add int x int y cout lt lt x lt lt 34 43 34 lt lt
  • geometry_msgs.msg.PoseStamped 代码示例

    https programtalk com python examples geometry msgs msg PoseStamped 转载于 https www cnblogs com sea stream p 11129929 html
  • ubuntu 执行apt-get update报错Failed to fetch

    在ubuntu下执行sudo apt get update时 xff0c 经常会遇到报错 xff1a Err http security ubuntu com precise security InReleaseErr http secur
  • github中的wiki是干嘛的_在 Hyperf 框架中,如何定制 gen:model 命令

    Hyperf v2 0 版本中 xff0c 会将 decimal 转化为 float xff0c 从而存在精度丢失的风险 如果直接修改这个问题 xff0c 可能会导致 v2 0 出现 BC xff0c 所以我们在 v2 1 中得到了处理 x
  • APM飞控修改数传模块方法

    APM飞控修改数传模块方法 硬件 ARDUCOPTER第二代数传模块 USB接口 数传模块 telem接口 usb ttl模块 修改方法 注意 xff1a APM固件版本和数传模块估计版本是分开的 xff0c 但有一定的对应关系 xff0c
  • HTTP AUTH 那些事

    谨以此文献给那些需要实现HTTP AUTH的 程序猿 们 关于HTTP AUTH的文档不多 RFC在 http www ietf org rfc rfc2617 txt wiki在 http en wikipedia org wiki Ba
  • 基于超声波的四轴定高控制简析

    笔者是来自武汉理工的小青同学 xff0c 接下来为大家讲一下基于超声波的定高问题 xff0c 鉴于笔者能力有限 xff0c 所以如有错误请多指教 xff0c 且很多仅仅是工程上的近似化应用 xff0c 没有做过仿真模拟 我讲的东西更加偏重于
  • Android 新建工程 卡在Gradle:Resolve dependencies':app:_debugCompile'

    今天更新 androidSDK 到 5 0 xff0c 发现新建工程时卡在 Gradle Resolvedependencies 39 app debugCompile 39 首先 xff0c googledevelop是访问不了的 xff
  • 数学公式

    一 泰勒公式 数学中 xff0c 泰勒公式是一个用函数在某点的信息描述其附近取值的公式 如果函数足够平滑的话 xff0c 在已知函数在某一点的各阶导数值的情况之下 xff0c 泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的
  • python内置方法和属性

    1 del 方法 作用 当使用类名 创建对象时 xff0c 为对象分配完空间后 xff0c 会自动调用 init 方法 xff0c 当对象被从内存中销毁前 xff0c del 方法会被自动调用 应用场景 xff1a init 方法可以重新设
  • Linux行人识别,0.kcf-tracker 机器人跟踪编程,基于opencv的行人检测和 ,当 发现 后自动进行 。 Linux Network 网络 276万源代码下载- www.pudn.co...

    文件名称 0 kcf tracker下载 收藏 5 4 3 2 1 开发工具 Windows Unix 文件大小 95560 KB 上传时间 2017 05 14 下载次数 0 详细说明 xff1a 机器人跟踪编程 xff0c 基于open
  • 【VirtualBox】快照

    一 快照备份 虚拟机系统快照下来 xff0c 以后就可以恢复到快照之前的系统 右上角 gt 虚拟电脑工具 gt 快照 转载于 https www cnblogs com chenxiaomeng p 9497166 html
  • TX2-start 6 CPU kernel-开启高功耗模式

    1 TX2简介 Jetson TX2是由一个GPU和一个CPU集群组成 CPU集群由双核denver2处理器和四核ARM Cortex A57组成 xff0c 通过高性能互连架构连接 拥有 xff16 个CPU核心和一个GPU xff0c
  • 生成正太随机变量

    clc clear close format long syms u v x y u1 u2 u3 u3 u x1 x2 x3 x4 x5 d L int int int int 1 x5 x4 1 x4 x3 1 x3 x2 1 x2 x
  • 【opencv基础】OpenCV installation stuck at [ 98%] Built target opencv_perf_stitching with no error...

    前言 按照官网步骤安装opencv的过程中进行到98 时一直没有继续进行 原因 后台一直在编译运行 xff0c 只需等待即可 xff0c 参考here xff1b well turns out it gets stuck for quite
  • PX4的UORB通信机制

    在Firmware的msg文件夹里面 xff0c 里面有很多 msg结尾的文件 xff0c 这些msg文件在编译的时候可以生成h头文件 xff0c 这些编译过程中生成的头文件一般是保存在build default src module uo
  • ubuntu下安装和更新R语言

    ubuntu 下安装和更新 R 语言 本文主要讲解在 ubuntu 下如何安装和更新 R 语言 将分别介绍什么是 R 语言 xff0c 简单方法安装 R 语言 xff0c 通过更新源来安装或更新 R 语言 xff0c 和安装 R 语言集成开
  • Linux 中各个文件夹的作用

    根目录 包含了几乎所的文件目录 相当于中央系统 进入的最简单方法是 xff1a cd boot 引导程序 xff0c 内核等存放的目录 这个目录 xff0c 包括了在引导过程中所必需的文件 在最开始的启动阶段 xff0c 通过引导程序将内核
  • 转:Fix Bug的五个阶段

    一个非常严重和困难的bug xff0c 能够成就一个饱经沧桑深受压力的有经验的专业程序员的职业生涯 经受这种考验的创伤程度 xff0c 相当你受到了一次严重的身体伤害 xff0c 离婚 xff0c 或是家庭成为的离世 研究人员在研究了计算机
  • 10.app后端选择什么开发语言

    在qq上 xff0c 经常看到有创业团队的创始人一直都招不到技术人员 xff0c 除了项目的因素外 xff0c 很大的原因就是所需要掌握的开发语言偏门 通过阅读本文 xff0c 详细了解选择开发语言的核心原则 xff0c 使各位心里对开发语

随机推荐

  • dell服务器系统开机提示错误解决方法

    DELL 服务器有时会若硬件的改动 xff0c 在开机以后会提示错误信息 信息一般会提示在显示器上 xff0c 以后举出如下信息的解决办法 信息 原因 纠正措施 Alert iDRAC6 not responding Rebooting i
  • 卡尔曼滤波原理

    卡尔曼滤波原理 原文链接 xff1a http www bzarg com p how a kalman filter works in pictures https blog csdn net u010720661 article det
  • 在网络直播中什么叫推流

    参考 xff1a 推流 xff0c 指的是把采集阶段封包好的内容传输到服务器的过程 其实就是将现场的视频信号传到网络的过程 推流 对网络要求比较高 xff0c 如果网络不稳定 xff0c 直播效果就会很差 xff0c 观众观看直播时就会发生
  • Hello, Weka

    转自http dreamhead blogbus com logs 16813833 html Weka xff0c 是一个用Java编写的数据挖掘软件 数据挖掘 xff0c 从字面上来看 xff0c 它是一个从数据中找寻有用信息的过程 x
  • ubuntu基础知识与技巧

    root用户与超级用户的切换 1 sudo i 2 sudo su 3 su root 安装升级 查看软件xxx安装内容 dpkg L xxx 查找软件库中的软件 apt cache search 正则表达式 或 aptitude sear
  • linux多线程编程书籍推荐:linux大牛之路从这几本书開始总结

    linux多线程编程是指基于Linux操作系统下的多线程编程 xff0c 包含多任务程序的设计 xff0c 并发程序设计 网络程序设计 数据共享等 Linux系统下的多线程遵循POSIX线程接口 xff0c 称为pthread 编写Linu
  • Google Tango初学者教程

    Getting Started with the Tango Java API In this tutorial we 39 ll go through setting up your build environment and compi
  • 在虚拟机下运行gazebo,关于vmw_ioctl_command error Invalid argument错误

    开发环境 xff1a windows10 43 vmware player 43 ubuntu14 04 43 ROS indigo 运行 xff1a gazebo 前提条件 xff1a 安装gazebo xff1a sudo apt ge
  • 做杜邦线(假)教程

    好像国外叫 跳线 xff08 jump wire xff09 xff0c 我们叫杜邦线 xff0c 不清楚这个名字的来历 某宝上的杜邦线 xff0c 质量良莠不齐 xff08 如同很多别的不是杜邦线的商品一样 xff09 吃过几次亏后 xf
  • PX4的workqueue

    Workqueue相当于是中断子程序 xff0c 然后在queue的cycle里面要注意 xff0c 不能在cycle函数里面用printf打印 xff0c 在cycle里面printf函数是打印不出来的 也不能在cycle里面用while
  • windows10安装Python环境

    下载Python交互解释器 xff08 俗称 环境 xff09 登录python官网 xff1a www python org 进 入 官 网 首 页 xff0c 选 择 Downlaods 下 面 对 应 的 系 统 版 本 xff08
  • gvim背景配色

    背景 xff08 feihua 重新安装了gvim7 4后 xff08 发现gvim7 3有显示字符的bug便升级了 xff0c 忽然想改一下windows下gvim的外观 xff0c 在看了几个博客 xff0c 却发现无法设置 xff0c
  • Vue路由(vue-router)详细讲解指南

    中文文档 xff1a https router vuejs org zh Vue Router 是 Vue js 官方的路由管理器 它和 Vue js 的核心深度集成 xff0c 让构建单页面应用变得易如反掌 路由实际上就是可以理解为指向
  • Eclipse在点击运行后不能自动保存的解决

    今天在eclipse上写程序调试时 xff0c 发现当我点击运行按键之后 xff0c 并不能在运行前帮我自动保存 xff0c 也就是说每次修改代码之后 xff0c 运行的还是前一次运行之前的代码 xff0c 并不是修改之后的代码 xff0c
  • 自旋锁的原理实现

    import java util concurrent atomic AtomicReference boolean compareAndSet V expect V update 如果当前值 61 61 预期值 xff0c 则以原子方式将
  • 到底哪种滤波算法好?互补滤波和卡尔曼滤波结果比较(转)

    看到有人说互补滤波跟卡尔曼滤波效果差不多 xff0c 我是不相信的 不过单我自己说不行 xff0c 要有结果 xff0c 后来我就用下面的代码进行测试 xff0c 结果如下图 lt ignore js op gt 结果 xff1a 果然两滤
  • C语言RL78 serial bootloader和C#语言bootloader PC端串口通信程序

    C语言RL78 serial bootloader和C 语言bootloader PC端串口通信程序 了解更多关于bootloader 的C语言实现 xff0c 请加我QQ 1273623966 xff08 验证信息请填 bootloade
  • 几个C++ online test 网站

    http www mycppquiz com list php http www codelect net TestDetails Cplusplus Senior Level Test http careerride com c 43 4
  • CMakeLists 中file GLOB的陷阱:undefined symbol错误

    例子 xff1a 为了规范代码写了如下CMakeLists Files include file GLOB source files c h 本意是在工程中添加 h c会
  • 第五周课程总结&试验报告(三)

    第五周课程总结 amp 试验报告 xff08 三 xff09 实验三 String类的应用 实验目的 掌握类String类的使用 xff1b 学会使用JDK帮助文档 xff1b 实验内容 1 已知字符串 xff1a 34 this is a