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 ...
随机推荐
- vue-webpack 做出来的项目部署到服务器上,点开是空白页(我这里把项目发布到git上)
总结1: 从网上下的很多demo,用npm run dev 就可以启动项目,比如:vue-cli,为什么?因为vue-cli自动帮我们安装了express服务器. 总结2: npm run dev 是 ...
- WIN 10 初体验:期待越多失望越大
我大多数时候使用 MacBook,不过 WIN 10(预览版)的推送还是让我忍不住升级玩玩——它是微软史上首款真正意义上的免费操作系统,正式版将与中国诸多互联网巨头联合提供升级工具分发这一体现了微软迎 ...
- [日常] nginx访问频率限制
去年的事,随便记记 ========================================================================= 2017年3月15日 记录: n ...
- Netty面试
声明:此文章非本人所 原创,是别人分享所得,如有知道原作者是谁可以联系本人,如有转载请加上此段话 1.BIO.NIO 和 AIO 的区别? BIO:一个连接一个线程,客户端有连接请求时服务器端就需要 ...
- 一个支持DbFirst、ModelFirst和CodeFirst的数据库小工具DbTool
DbTool 一个支持DbFirst.ModelFirst和CodeFirst的数据库工具. 简介 这是一个针对 SqlServer 数据库和 C# 开发语言的小工具,可以利用这个小工具生成数据库表对 ...
- python学习之老男孩python全栈第九期_day014知识点总结
# 迭代器和生成器# 迭代器 # 双下方法:很少直接调用的方法,一般情况下,是通过其他语法触发的# 可迭代的 --> 可迭代协议:含有__iter__的方法( '__iter__' in dir ...
- H5学习入门
[块级标签与行级标签的区别] 1.块级标签: 默认宽度100%(独占一行) 自动换行(右边不能有任何东西) 可以使用css设置宽度高度 2.行级标签: 内容宽度,由内容撑开(内容多宽,宽度就占多宽 ...
- (文章也有问题,请自行跳过)react中的状态机每次setState都是重新创建新的对象,如需取值,应该在render中处理。
demo如下 class Demo4StateLearn extends React.Component { constructor(props) { super(props); this.state ...
- css实现div不定宽高垂直水平居中解决方案
在项目中我们经常能碰见然图片垂直水平居中,不定宽高的div垂直水平居中,等等~~ 现在我将介绍我所知道的几种用css来解决的几种方案. 1.父元素text-align:center;display:t ...
- PS改变图像颜色
由于写的一个页面主色调变了,里面的一些图标颜色也要相应改变,自己难得重新去psd里面截图,就想着用ps,看能否直接能变换一下图标颜色.其实方法也很简单的. 1:用ps打开需要改变图标颜色的文件,然后选 ...

