Java API运用题

Api运用题

例题1: 世纪末的星期(经典日期API问题)

题目:有邪教称1999年12月31日是世界末日,当然谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会…有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!!于是"谣言制造商"又修改为星期日…

1999年12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即XX99年)的12月31日正好是星期天(即星期日)?
回答年份即可

知识点:这道题运用到了一个java日历类,笔记在java知识点中了

package one;
import java.util.Calendar;
public class None_1 {
   
    public static void main1(String[] args) {
   
//    	获取一个日历类来实现这个功能calendar
//      因为这个日历类是一个抽象类所以不能直接new,但可以通过getInstance来
//      获取一个实例
    	Calendar calendar=Calendar.getInstance();
//    因为末日年都是以99结尾的所以可以将当前的时间加上100
    	for(int i=1999;i<10000;i+=100) {
   
//    		通过set方法,为calendar的属性设置参数
    		calendar.set(Calendar.YEAR, i);
    		calendar.set(Calendar.MONTH, 11);
    		calendar.set(Calendar.DATE, 31);
//    		获取当前calendar的星期数
    		if(calendar.get(Calendar.DAY_OF_WEEK)==1){
   
    			System.out.println(i);
    			break;
    		}
    	}
    }
}

例题2 猜字母(字符处理问题)

题目:

把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字符。

得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。

知识点:使用了StringBuffer API,着道题挺有意思的,理解自动提升索引

package one;
//思路直接一个while循环加上for循环就完事了
public class None_4 {
   
   public static void main(String[] args) {
   
//	   创建一个StringBuffer,方便后面的删除
	   StringBuffer buf=new StringBuffer();
	   String str="abcdefghijklmmopqrs";
//	   拼接字符串
	   for(int i=0;i<=105;i++) {
   
		   buf.append(str);
	   }
//	   使用while循环和for循环会buf中的字符进行删除
//	   我去有大坑,即使我们再删除buf中的数据的时候,数组中的下标在往前移动
//	   所以我们不需要,也不能通过判断该位置的下标是不是奇数来删除该数
//	   我们想象一下我们在删除的时候数组在往前移动就行,所以每次while循环只需要去掉一半即可
//	   奇数的时候需要多删除一个
	   while(buf.length()>1) {
   
		   int len=buf.length();
		   int dellen;
		   if(len%2==0) {
   
			   dellen=len/2;
		   }else {
   
			   dellen=len/2+1;
		   }
		   for(int i=0;i<dellen
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值