java学习总结——通过题来学习Java(Java基础语法篇之一)

一.概述

大二痛苦的前十个周后,我终于得到了喘息之机,有时间来回顾一下之前所学到的东西,总结一下之前的所得,尝试获取一下新的东西,同时也可能对大家有所帮助。我决定从总结我们做的每一道题来入手,深入的分析它们并且尝试进行改进,从而达到复习效果,同时希望对和我一样的刚入门的小白也有帮助。

二.题目集分析

1.是否偶数 (10 分)

本题要求实现一个函数,判盘输入的整数是否是偶数,如果是偶数,返回true,否则返回false。

函数接口定义:

public static boolean isOdd(int data)

说明:其中 data 是用户传入的参数。 data 的值不超过int的范围。函数须返回 true 或者 false

裁判测试程序样例:

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner in=new Scanner(System.in);int data=in.nextInt();System.out.println(isOdd(data));}/* 请在这里给出isOdd(i)函数 */}

输入样例:

8

输出样例:

true

分析:Java中充满了各种方法,我们所熟知的主函数在public类中,就叫做主方法,这里就是一个最基础的操作,即自己写一个可以判断奇偶数的方法,方法的接口为public static boolean isOdd(int data),这里我们可以看到这个方法是一个public类型的方法,也就是说这个方法是公共的,公共方法一般情况下认为可以跨类使用,而并非仅有此类可以使用,static则将这个方法定义为一个静态方法,静态方法和其他方法不同的是静态方法会事先加载到内存中去,这里的意思是指动态方法会随着实现它的类的对象的出现而可以使用,举个例子,当Scanner类实现一个Scanner对象后,才能使用各种next,nextInt方法,而static类型的方法是不用这样的,他们实际上不再受类的控制,而可以随时独立的使用,这样一来,我们也可以称他们为函数,主函数就是一个静态方法,我个人认为它仍然是一个方法,可能因人而异。boolean代表它的返回类型,boolean可以看到bool,即布尔型,在Java中布尔型有true和false两个值,即真和假,很容易看出。

实现代码:

public static boolean isOdd(int data){//函数接口,并传入参数if(data%2==0)//如果为偶数,返回truereturn true;else//否则返回falsereturn false;}

总结:这个题目还未涉及一些“更Java”的东西,但是一些不同已经体现出来了,比如函数的声明中,出现了一些修饰符“public”,“static”,“boolean”,这些修饰符共同定义了这个函数的类型,总体上,他们的优先级为“方法是否公共,是否静态方法,返回值类型”,关于是否公共,我们通常有三种方式来描述public,不加,private,public代表它是一个公共方法,不加默认是公共方法,加private是私有方法,这个方法只能在这个类里使用,同时不能被继承。而是否静态这个修饰符通常是不写,static,不写的话为动态,写static则是静态方法,至于返回值类型则有很多了,而且我们也比较熟悉。日后会进行更加详细的总结。而我们发现Java中的一些布尔运算式,条件判断,返回和C语言差不多,记住即可。

2.人口统计 (10 分)

本题运行时要求键盘输入10个人员的信息(每一个人信息包括:姓名,性别,年龄,民族),要求同学实现一个函数,统计民族是“汉族”的人数。

函数接口定义:

public static int numofHan(String data[])

其中 data[] 是传入的参数。 data[]中的每一个元素都是一个完整的人员信息字符串,该字符串由“姓名,性别,年龄,民族”,各项之间用英文半角的逗号分隔。函数须返回 值是汉族的人数。

裁判测试程序样例:

import java.util.Scanner;public class Main {public static void main(String[] args) {final int HUMANNUM=10;String persons[]=new String[HUMANNUM];Scanner in=new Scanner(System.in);for(int i=0;i<persons.length;i++)persons[i]=in.nextLine();int result=numofHan(persons);System.out.println(result);}/*在此处给出函数numofHan()*/}

输入样例:

Tom_1,男,19,汉族
Tom_2,女,18,汉族
Tom_3,男,20,满族
Tom_4,男,18,汉族
Tom_5,男,19,汉族人
Tom_6,女,17,汉族
Tom_7,男,19,蒙古族
汉族朋友_1,男,18,汉族
Tom_8,male,19,老外
Tom_9,female,20,汉族

输出样例:

7

分析:这个题乍一看复杂了起来,涉及键盘输入,字符串处理,对于字符串处理,我们是不需要添加库文件的,但是对于输入文字就不是这样了,同时和C语言也有不小的差别,对于这里我也仍有些不清楚的地方,比如我们可以动态调用print方法,也可以静态调用,而对于输入我们可以用Scanner包,也可以使用StringBuilder包,二者有着不同的操作方法,效率也不是一样的,这些需要进行更详细的分析。

代码实现:

public static int numofHan(String data[])//显然传入了一个字符数组的参数{int i,han = 0;//设置字符指针和计数器for(i=0;i<data.length;i++)//对字符数组中的每一个字符串进行遍历,注意length方法为获取字符串长度方法{if(data[i].indexOf("汉",4)>0)//indexOf方法可以获取到一个字符串中指定字符的位置han++;}return han;}
//关于indexOf方法的详细解释,indeOf(查找字符,开始查找位置),如果不添加查找位置,会默认从头开始查找,因为字符串其他位置可能存在“汉”这个字,所以我必须把它的起始位置调到防止出现这种误判情况的最佳位置,这里我调到了4是因为在4之前存在可能出现汉字的“姓名”一栏,之后除了民族不会出现,如果这里的输入限制没那么多,我们仍然可以调节搜索范围来提高判断的精度。

java学习总结——通过题来学习Java(Java基础语法)相关推荐

  1. PHP基础题带详细答案,PHP基础语法试题(一)答案版.docx

    PHP基础语法试题(一)答案版 关于服务器.浏览器.PHP解释器的说法中,正确的有( ).A. Web浏览器只解析HTML.CSS.JavaScript代码B. PHP文件,只能被Apache服务器解 ...

  2. BAT Java面试笔试33题:JavaList、Java Map等经典面试题!答案汇总!

    JavaList面试题汇总 1.List集合:ArrayList.LinkedList.Vector等. 2.Vector是List接口下线程安全的集合. 3.List是有序的. 4.ArrayLis ...

  3. java perfect number_LeetCode算法题-Perfect Number(Java实现)

    这是悦乐书的第249次更新,第262篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第116题(顺位题号是507).我们定义Perfect Number是一个正整数,它等于 ...

  4. java程序运行结果题_2016年关于Java编程与程序运行结果笔试题

    2016年关于Java编程与程序运行结果笔试题 1.Java编程,打印昨天的当前时刻 public class YesterdayCurrent{ public void main(String[] ...

  5. 前端学习 HTML5和CSS3新特性 高级技巧 JavaScript基础语法

    HTML5和CSS3提高 HTML5的新特性 HTML5的新增特性主要是针对于以前的不足,增加了一些新的标签,新的表单和新的表单属性等: 这些新特性都有兼容性问题,基本是IE9+以上的版本浏览器才支持 ...

  6. 重生之我是javaの神之修炼练气功法之javase基础语法

    类的定义规则:每个单词的首字母大写,类名和文件名保持一致,见名知意. 标识符命名规范 1.只能以字母$下划线开头,以这三者和数字组成. 2.不能出现java关键字 3.不能出现中文 多行注释和文档注释 ...

  7. java运算符试题,编程语⾔⾯试题之新版javase基础语法篇之运算符

    简介:⾯试中 短路运算符 和 位运算考点:计算机基础运算知识 难度[** *] 你知道 运算符 &和&&.|和||的区别吗? ``` & 按位与操作 只有对应的两个⼆进 ...

  8. python学习笔记(11)--测验3: Python基础语法(下) (第7周)

    斐波那契数列计算 B 描述 斐波那契数列如下: F(0) = 0, F(1) = 1 F(n) = F(n-1) + F(n-2) 编写一个计算斐波那契数列的函数,采用递归方式,输出不超过n的所有斐波 ...

  9. 【Java基础总结】剖析初识Java时那些困惑你我的牛马问题之:标识符,字面量,字符以及格式化占位符 Java中的基本数据类型和引用数据类型等基础语法总结

最新文章

  1. JS中的call和apply
  2. canopy算法 java_mahout源码canopy算法分析之二CanopyMapper
  3. Spring5-IOC容器实现方式
  4. 每日一学:如何转换png图片为jpg图片
  5. 实现Linux系统外部和容器内部的文件传输
  6. 控制台出现Failed to bind properties under ‘spring.datasource‘ to javax.sql.DataSource
  7. 入门Python,总遇到这样那样的安装问题,手把手教会你
  8. select函数的并发限制和 poll 函数应用举例
  9. *第八周*数据结构实践项目一【建设顺序串算法库】
  10. java获取weblogic路径_weblogic下java web项目获取根路径
  11. Hybrid App 混合app 开发
  12. CS5211替代LT7211B参数特性与优势|DP转LVDS方案
  13. Table [xx] contains physical column name referred to by multiple physical column names 错误处理
  14. 苹果换原装电池_航空港区正规苹果换原装屏幕价目表
  15. 跨站脚本攻击(XSS)详解
  16. 展示一下基于flask框架的网页播放器的代码
  17. cad2014卡顿的解决方法_cad2014画直线卡顿怎么回事
  18. RHM-M60型挖掘机力矩限制器/载荷指示器
  19. VUE项目打包后posy代理失效Nginx解决
  20. 黑马在线教育数仓实战5

热门文章

  1. 英语自我介绍(工作求职)
  2. Airsim动态 | 安装ROS包装器(AirSim ROS Wrapper)
  3. torch.nn.functional.unfold 用法解读
  4. Linux操作ping命令name or service not know解决办法
  5. androidtest 31
  6. 百度红包预热活动被封锁
  7. IAR中Error[Pe007]: unrecognized token
  8. Qt5.12+VS2017联合开发环境配置及注意事项
  9. js 生成随机字符串,生成随机机器码
  10. 在cmd中使用命令来编译并运行java程序,导入其他jar包,使用windows批处理文件