Java编程练习题
曾经,有人说过,没有刷题的人生是不完整的。看了几天Java,我试着做了几道练习题,好让我的人生完整一点。(偷笑……)这里挑了一些题来跟大家分享,本文不定期更新。
题目集
1. 最后一个单词的长度(题目来自:计蒜客)
问题:
分析: 要求字符串中最后一个单词的长度,由于单词间是由空格隔开的,如果字符串末尾没有空格,就可以用字符串最后一个字母的索引减去最后一个空格的位置索引来求。但是要注意的是,此题字符串的首尾均可能存在空格。所以在接收输入的字符串后,要先把字符串尾巴的空格去掉,可以用Sting类里的
trim()方法来实现。处理完后再用String类的length()方法去求字符串长度length,length-1即为最后一个字母的位置索引。接下来要得到的的是最后一个空格的位置索引,可以用Sting类里的lastIndexOf(int x)方法来得到,其括号内的参数为int型,所以要查找空格的ASCII码,为32。如果不知道空格对应的ASCII码,也可以用(int)' '通过强制类型转化来得到对应的值。最后,要接受一串可能含有空格的字符串,可以用Scanner类里的nextLine()方法。代码:
import java.util.Scanner; public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int length=1,i=0;
String str="";
if(scan.hasNextLine()) {
str=scan.nextLine(); //接收输入的字符串(可能含有空格)
str=str.trim(); //去除字符串首部和尾部的空格
length=str.length(); //返回字符串的长度
} i=str.lastIndexOf(32); //返回最后一个空格的位置索引,空格ASCII码为32
System.out.println(length-1-i);
}
}
2. 爬楼梯(题目来自:计蒜客)
问题描述:
分析:第一遍做的时候想当然的把问题转化为求二元方程x+2y=n的解有几个,提交后发现错了。再想想,发现如果顺序不同那也是不同的方法。比如有三级楼梯,x+2y=3的解只有(3,0)(1,1)两种,但是在(1,1)的情况下,先走一级再走两级和先走两级再走一级是不一样的,所以(1,1)的情况有两种走法,一共是三种。通过自己模拟,发现可以用递归思想来解决,而结果就是跟著名的斐波那契数列,n级楼梯所对应的方法数就是斐波那契数列(从第0项开始)中的第n项(F(n))。所以可以开一个数组a[],存放斐波那契数列数列,对于输入的n,输出a[n]即可。
代码:
import java.util.Scanner; public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=0;
int[] ways=new int[51]; if(scan.hasNextInt()) {
n=scan.nextInt();
}
ways[0]=0;
ways[1]=1;
ways[2]=2;
for(int i=3;i<=n;i++) {
ways[i]=ways[i-1]+ways[i-2];
}
System.out.println(ways[n]);
}
}
3. XXX
Java编程练习题的更多相关文章
- 6、50道JAVA基础编程练习题跟答案
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...
- 50道JAVA基础编程练习题
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...
- 50道JAVA基础编程练习题 - 题目
50道JAVA基础编程练习题[1]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [2]题目:判断 ...
- 【译】快速高效学习Java编程在线资源Top 20
想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...
- (转)2019年给Java编程初学者的建议(附学习大纲)
本文链接:https://blog.csdn.net/javajlb/article/details/85920904 1. 引言这是一篇初学者干货,请耐心看完,希望对你有帮助 作为初学者的你,命中了 ...
- 重新精读《Java 编程思想》系列之组合与继承
Java 复用代码的两种方式组合与继承. 组合 组合只需将对象引用置于新类中即可. 比如我们有一个B类,它具有一个say方法,我们在A类中使用B类的方法,就是组合. public class B { ...
- 快速高效学习Java编程在线资源Top 20(转载)
想要加强你的编程能力吗?想要提升你的 Java 编程技巧和效率吗? 不用担心.本文将会提供快速高效学习 Java 编程的 50 多个网站资源: 开始探索吧: 1.MKyong:许多开发者在这里可以找到 ...
- JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)
switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...
- 《Java编程思想》学习笔记(二)——类加载及执行顺序
<Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...
随机推荐
- b-树和b+树以及mysql索引
b-树(m阶): 1.根节点至少有2个子节点; 2.中间节点包含k个子节点和k-1个元素,m/2 <= k <= m; 3.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子 ...
- Qt5 编程基础
Qt 是一个C++ GUI应用框架,Qt 具有良好的可移植性支持大多数桌面和移动操作系统并常用于嵌入式开发. Qt的发行版分为商业版和开源版,提供了Qt Creator作为轻量级IDE. Hello ...
- 使用DateTime的ParseExact方法实现特殊日期时间的方法详解(转)
本篇文章是对使用DateTime的ParseExact方法实现特殊日期时间的方法进行了详细的分析介绍,需要的朋友参考下 今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: [ ...
- SqlDataReader的关闭问题,报错:“阅读器关闭时尝试调用 Read 无效”
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//关闭SqlDataReader 会自动关闭Sqlconn ...
- JavaScript 函数使用return返回值
我们可以把数据通过函数的 参数 来传入函数,也可以使用 return 语句把数据从一个函数中传出来. 举个栗子 function plusThree(num) {return num + 3;}var ...
- SpringBean 工作原理详解
本文来自Github开源项目https://github.com/Snailclimb/JavaGuide,只供自己学习总结无商业用途,如有侵权,联系删除 前言 在 Spring 中,那些组成应用程序 ...
- SQL Server Profiler小技巧——筛选请求
如果需要转载,请附上本文作者和原文链接:http://www.cnblogs.com/zeusro/p/4016228.html Microsoft SQL Server Profiler 是 SQL ...
- eclipse启动项目报错:java.lang.ClassNotFoundException: ContextLoaderListener
eclipse 启动项目报错:找不到 Spring 监听器类 org.springframework.web.context.ContextLoaderListener 严重: Error confi ...
- Mybatis之reflection包源代码解析(一)
一.序言 Mybatis作为ORM,实现了对象与关系数据库间的映射.Mybatis中的映射包含两个方面: 1.将对象中的值(parameterType所指定的对象)映射到具体的sql中,例如: & ...
- Django中间件解析
一,中间件的概念 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法.在dja ...

