String 常用方法练习题目,解析。

1.请根据控制台输入的特定日期格式拆分日期: 

   题目:如:请输入一个日期(格式如:**月**日****年)经过处理得到:****年**月**日      abcdefg123 

字符串方法: String 常用方法练习题目,解析。

源码: 

String 常用方法练习题目,解析。

 

 

2.给出一个随机字符串,判断有多少字母?多少数字? 

    题目的要求就是你对字符串进行判断,在String类中有一个方法

 

char[] toCharArray()
          将此字符串转换为一个新的字符数组。

,这个方法可以将字符串拆分,然后对每一个字符进行编码,这样你就可以利用循环对每一个字符进行单独判断。

源码: 

String 常用方法练习题目,解析。

执行结果: 

String 常用方法练习题目,解析。

 

3.题目以下是一段歌词,请从这段歌词中统计出朋友出现的次数

   "这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。
 朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。";

  提示:使用String方法indexOf、substring,split.

方法: 

 

 int indexOf(int ch)
          返回指定字符在此字符串中第一次出现处的索引。
 int indexOf(int ch, int fromIndex)
          返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
 int indexOf(String str)
          返回指定子字符串在此字符串中第一次出现处的索引。
 int indexOf(String str, int fromIndex)
          返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

 

 String substring(int beginIndex)
          返回一个新的字符串,它是此字符串的一个子字符串。
 String substring(int beginIndex, int endIndex)
          返回一个新字符串,它是此字符串的一个子字符串。

 

 String[] split(String regex)
          根据给定正则表达式的匹配拆分此字符串。

解析: 

这里使用了一个关键的方法,但是感觉这个有点偏门,就是split,这个解释起来有点复杂,打个比方它可以将一个字符串中你选定的字符,或者字符串作为一个“句号”来进行使用,然后你用这个句号来拆分你的字符串,而且他的返回值还是还是字符数组,而且这个字符数组的返回形式是以你句号的位置来定的。然后,又因为字符数组的里面存的字符数据多少,跟你的“有关系”,这样你就可以根据字符数据,来判断你的“句号的”数据信息。简直蛋疼。

 

举个例子 : 

例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:

Regex 结果
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }

这个方法的功能,我暂时还想不到其他的方面。可以对一段文字进行指定的单个字符删选???(这也太没用了吧)。 

String 常用方法练习题目,解析。

4.编写敏感词过滤程序 
   说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉

      提示:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语类表(数组实现)进行比对。如果属于敏感词语,就过滤掉或替换掉。 

解析:一个思路,就是按照提示中那样,建立一个字符数组,将敏感词汇放入其中,然后将文章对它进行匹配识别。

源码: 

String 常用方法练习题目,解析。

 


5.根据输入的年份、产品类型和随机数产生固定资产编号
   即:固定资产编号=年份+0+产品类型+3位随机数
   
    程序运行流程:请输入年份:
                  ……
                  请选择产品类型(1. 台式机 2. 笔记本 3. 其他):
                  ……
                  生成3位随机数
                  最后显示固定资产编号

    提示:3位随机数按如下方法产生:
           (int)(Math.random()*1000);

解析:额这道题目的难度不大,按照正常的逻辑就可以写出来,只是这里有一个随机数的产生要注意。

 (int)(Math.random()*1000);

String 常用方法练习题目,解析。

 

6.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。 

一般显示的是字符串,所以首先需要将他们转换成数字,再进行运算。  这里就需要应用到一个方法,

 这个方法来自Class SimpleDateFormat ,主要的格式化的功能都来自Format 

 

 long

getTime()
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

 

这个是用来将得到的date数据,转换成number类型的数据,这道题就是将字符数据转换成number数据,就是麻烦。幸好这里是直接比较两个日期之间时间差,但是这里还有一个问题,如果比较的数据是1970以前的数据,还得进行绝对值运算。

所以这里就不那么麻烦了,默认是1970年以后的数据。

 

 boolean after(Date when)
          测试此日期是否在指定日期之后 

 

方便比较日期的大小,不用转换成number类型再比较。 

源码: 

 

String 常用方法练习题目,解析。

 

 7.计算并输出21世纪的闰年,计算程序的执行时间。  

解析:计算闰年可以通过循环取余来达到目的,而程序的执行时间需要用到一个方法。发现这么多题目,就是在api当中疯狂的找方法。

源码: 

String 常用方法练习题目,解析。

String 常用方法练习题目,解析。

8.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符串中的小写字符输出。

解析:这个题目可以从如何从字符串中提取字符大小写出手,可以从Ascall码考虑。大写的Ascall码是从97处方,而小写是从90之后的。直接上代码,清晰明了。 

String 常用方法练习题目,解析。

 

String 常用方法练习题目,解析。

9.编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几 

解析:这个题目,首先将数据转换,然后用得到的Date数据识别日历系统

rl.setTime(xx); //基于获得的Date 数据得到日历。

,再通过日历系统得到年份,月份,周的信息,对于闰年的判断,可以调用这个子类中的一个方法。 

需要用到一下类,我解释不清楚下面类的原理。

类Calendar

类 GregorianCalendar

 

boolean

isLeapYear(int year)
          确定给定的年份是否为闰年。

 

 

getActualMaximum

public int getActualMaximum(int field)

考虑到给定的时间值和 getFirstDayOfWeekgetMinimalDaysInFirstWeekgetGregorianChangegetTimeZone 方法的当前值,返回此日历字段可能具有的最大值。例如,如果此实例的日期是 2004 年 2 月 1 日,则 DAY_OF_MONTH 字段的实际最大值是 29,因为 2004 年是闰年;如果此实例的日期是 2005 年 2 月 1 日,则最大值是 28。

源码:

String 常用方法练习题目,解析。

String 常用方法练习题目,解析。

 

对于这个日历系统,代码执行的始终有问题,等我换台机子。再试试,