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 ...
随机推荐
- hadoop学习笔记(七):Java HDFS API
一.使用HDFS FileSystem详解 HDFS依赖的第三方包: hadoop 1.x版本: commons-configuration-1.6.jar commons-lang-2.4.jar ...
- sql中同一个表一个字段的值赋值给另一个字段
UPDATE SG_User SET DefaultOrganizationID = OrganizationID
- WCF DEMO1 创建自托管宿主
using System; using System.ServiceModel; using System.ServiceModel.Channels; //注意:需要引用程序集 System.Ser ...
- DedeCMS修改管理员用户名
织梦内容管理系统(DedeCMS) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历多年的发展,目前的版本无论在功能,还是在易用性方面,都有 ...
- android service服务的学习
1.Service简单概述 Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件.服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即 ...
- [日常] crontab的秒执行和串行化和多进程实现
1. crontab的最低运行频率是,按照每分钟执行一次,通过在脚本中简单实现按秒级别运行 比如这条cron规则 , 每分钟执行一次脚本 * * * * * php /var/www/html/tes ...
- [PHP] Yaf框架的简单安装使用
PHP开发组鸟哥惠新宸开发的php扩展框架 安装 windows下载扩展:https://pecl.php.net/package/yaf/2.2.9/windows 根据自己的电脑系统和php的版本 ...
- 一次查找Windows Live Writer的VSPaste插件丢失RTF格式信息的经历
背景 我在博客园上写博客是使用Windows Live Writer,代码高亮插件是使用Paste from Visual Studio(下文简称VSPaste). Windows Live Writ ...
- eclipse编译项目:Java @Override 注解报错的解决方法
错误: 在 eclipse 的新工作空间开发项目时,出现大面积方法编译错误.鼠标放在方法名上后显示让我们去掉 @override 注解,如图: 原因: @Override 是 jdk5 引入的机制,但 ...
- Spring系列之——使用了哪些设计模式
1 工厂模式:BeanFactory.ApplicationContext创建中 2 模板模式:BeanFactory.ApplicationContext实现中 3 代理模式:在AOP实现中用到了J ...

