分享一个比较有意思的题目

这道题是老师前几天在课堂上的思考题,如下:

定义一个字符串,例如:“exe.jpg.asp.php”,得到最后的扩展名。

自己做出来三种方法,今天老师把每个班级写出来的给我们看了下,发现有几个写的不错,从代码来看对String的理解:

CODE1:

 1 package com.xlm;
 2 
 3 import java.util.StringTokenizer;
 4 
 5 public class T1 {
 6 
 7     static public String getKuo(String s){
 8         
 9         StringTokenizer st=new StringTokenizer(s,".");
10         int count=st.countTokens();
11         for(int i=0;i<count-1;i++){
12           st.nextToken() ;
13         }
14         return  st.nextToken();
15     }
16     public static void main(String[] args) {
17         String s="xlm.txt.exe.com.bmp.c.obj";    
18         String ss=T1.getKuo(s);
19         System.out.println(ss);
20     }
21 }

CODE2:

 1 package com.xlm;
 2 
 3 import java.util.StringTokenizer;
 4 
 5 public class T2 {
 6 
 7     
 8     public static String getKuo(String s){    
 9         StringTokenizer st=new StringTokenizer(s,".");
10         int size=st.countTokens();
11         String v[]=new String[size];
12         
13           for(int i=0;i<v.length;i++)  {
14               v[i]=st.nextToken();
15           }
16           return v[size-1];
17     }
18     public static void main(String[] args) {
19         String s="xlm.txt.exe.com.c";
20         String ss=T2.getKuo(s);
21         System.out.println(ss);     
22     }
23 }

CODE3:

 1 package com.xlm;
 2 
 3 import java.util.StringTokenizer;
 4 
 5 public class T3 {
 6 
 7     static public String getKuo(String s) {
 8 
 9         StringBuffer sb = new StringBuffer(s);
10         StringBuffer sbb = sb.reverse();
11         String ss = sbb.toString();
12 
13         StringTokenizer st = new StringTokenizer(ss, ".");
14         String ssss = st.nextToken();
15 
16         StringBuffer sbbbb = new StringBuffer(ssss);
17         String sv = sbbbb.reverse().toString();
18         return sv;
19     }
20 
21     public static void main(String[] args) {
22         String s = "xlm.com.exe.bmp.obj";
23         String v = T3.getKuo(s);
24         System.out.println(v);
25     }
26 }

CODE4:

 1 package com.xlm;
 2 
 3 public class T4 {
 4     public static void main(String[] args) {
 5         String str="benny.exe.txt.com.bat";
 6         String str2=str.replace("."," ");
 7         String words[]=str2.split("[ ]");
 8         System.out.println(words[words.length-1]);
 9     }
10 }

CODE5:

 1 package com.xlm;
 2 
 3 public class T5 {
 4 
 5     public String getExpandName(String s){
 6         String ss="";
 7         int t=0;
 8         for(int i=0;i<s.length();i++){
 9             int t1=s.indexOf('.',t);
10             if(t1!=-1){
11                 t++;
12             }
13         }
14         ss=s.substring(t);
15         return ss;
16     }
17     public static void main(String[] args) {
18         T5 t=new T5();
19         System.out.println(t.getExpandName("aaa.java.text.opm"));
20     }
21 
22 }

CODE6:

 1 package com.xlm;
 2 
 3 public class T6 {
 4 
 5     public static void show(String s){
 6         int d=s.length();
 7         for(int i=0;i<d;i++){
 8             if(s.substring(1,d).endsWith(".")){
 9                 System.out.println(s.substring(d));
10                 break;
11             }else{
12                 d--;
13             }
14         }
15     }
16     public static void main(String[] args) {
17               T6.show("dfgh.df.df.dfdfd");
18     }
19 
20 }

下面是最好的,佩服他的思路。

CODE7:

 1 package com.xlm;
 2 
 3 public class T7 {
 4     
 5         public static void show(String srt){
 6         System.out.println(str.substring(str.lastIndexOf(".")+1));
 7        }
 8 
 9     public static void main(String[] args) {
10         String t="exe.txt.xv.com";
11                 T7.show(t);
12     }
13 }

方法有很多种,今天下午在机房又写出来几种,但是都没有最后一个写的好,在此就不献丑了,如果你有更好的方法,欢迎回复,一起学习。

posted @ 2015-05-27 19:31  sevck  阅读(444)  评论(0编辑  收藏  举报