这道题是老师前几天在课堂上的思考题,如下:
定义一个字符串,例如:“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 }
方法有很多种,今天下午在机房又写出来几种,但是都没有最后一个写的好,在此就不献丑了,如果你有更好的方法,欢迎回复,一起学习。