黑马程序员技术交流社区

标题: 基础视频day13字符串练习。 [打印本页]

作者: 不怕黑人    时间: 2015-7-23 12:19
标题: 基础视频day13字符串练习。
  1. public class Day13Test1 {

  2.         public static void main(String[] args) {
  3.                 String str = "  java hello  ";
  4.                 str = "asfhelloasfb";
  5.                 String str1 = "fjkhelloa";
  6. //                trims(str);
  7. //                rever(str);
  8. //                count(str,str1);
  9.                 maxSame(str,str1);
  10.         }
  11.         //自定义去字符串两边空格方法。
  12.         public static void trims(String str){
  13.                 int index1=0,index2=0;
  14.                 //从前向后遍历。
  15.                 for (int x = 0;x<str.length();x++){
  16.                         if(str.charAt(x)!=' '){
  17.                                 index1 = x;
  18.                                 break;
  19.                         }
  20.                 }
  21.                 //从后向前遍历。
  22.                 for(int x= str.length()-1;x>0;x--){
  23.                         if(str.charAt(x)!=' '){
  24.                                 index2 = x;
  25.                                 break;
  26.                         }
  27.                 }
  28.                 System.out.println(str.substring(index1, index2+1));
  29.         }
  30.         //自定义字符串反转方法。
  31.         public static void rever(String str){
  32.                
  33.                 char[] arr = str.toCharArray();
  34.                 //自定义一个容器。
  35.                 char[] ch = new char[arr.length];
  36.                 int x = 0;
  37.                 int len = arr.length-1;
  38.                 while(x<arr.length){
  39.                         //存储。
  40.                         ch[len--]=arr[x++];
  41.                 }
  42.                 System.out.println(new String(ch));       
  43.         }
  44.         //自定义求子字符串出现多少次的功能。
  45.         public static void count(String str,String str1){
  46.                
  47.                 int count = 0;
  48.                 int x = 0;
  49.                 int len = str1.length();
  50.                 if(str.contains(str1)){
  51.                        
  52.                         x = str.indexOf(str1);
  53.                         count++;
  54.                         while(str.indexOf(str1,x+len)!=-1){
  55.                                 x = str.indexOf(str1,x+len);
  56.                                 count++;
  57.                         }
  58.                 }
  59.                 System.out.println(count);               
  60.         }
  61.         //自定义一个求最大相同字符串的功能。
  62.         public static void maxSame(String str,String str1){
  63.                 String str3 = "";
  64.                 for(int x = str1.length();x>0;x--){
  65.                        
  66.                         String str2 = str1.substring(0,x);
  67. //                        System.out.println("str2==="+str2);
  68.                         if(!(str.contains(str2))){
  69.                         for(int y = 0;y<x;y++){
  70.                                
  71.                                 str3 = str2.substring(y,x);
  72. //                                System.out.println("str3="+str3);
  73.                                 if(str.contains(str3))
  74.                                         break;
  75.                                 }
  76.                         if(str.contains(str3))
  77.                                 break;
  78.                         }
  79.                 }
  80.                 System.out.println(str3);
  81.         }
  82. }
复制代码

作者: 王连正    时间: 2015-7-23 12:35
兄弟如果用正则表达式的话就会好很多,不过这样写为了练习,写的不错,受教了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2