zoukankan      html  css  js  c++  java
  • 将一个字符串进行反转;获取一个字符串在另一个字符串中出现的次数;获取两个字符串中最大相同子串。

    1.将一个字符串进行反转。将字符串中指定部分进行反转。比如将“abcdefg”反转为”abfedcg”

     2.获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkabkskab”中出现的次数

     1 package string;
     2 
     3 /*
     4  * 1.将一个字符串进行反转。将字符串中指定部分进行反转。比如将“abcdefg”反转为”abfedcg”
     5  */
     6 public class Test1 {
     7     public static void main(String[] args) {
     8         String str2 = "abcdefg";
     9         String str3 = reverseString(str2, 2, 5);
    10         System.out.println(str3);
    11     }
    12 
    13     public static String reverseString(String str, int start, int end) {
    14         String str1 = str.substring(0, start);
    15         for (int i = end; i >= start; i--) {
    16             char c = str.charAt(i);
    17             str1 += c;
    18         }
    19         str1 += str.substring(end + 1);
    20         return str1;
    21     }
    22 }
     1 package string;
     2 
     3 public class Test2 {
     4     /*
     5      * 2.获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkabkskab”中出现的次数
     6      */
     7     public static void main(String[] args) {
     8         int i = getTime("abkkcadkabkebfkabkskab", "abk");
     9         System.out.println(i);
    10     }
    11 
    12     public static int getTime(String str1, String str2) {
    13         int count = 0;
    14         int len;
    15         while ((len = str1.indexOf(str2)) != -1) {
    16             count++;
    17             str1 = str1.substring(len + str2.length());
    18         }
    19         return count;
    20     }
    21 }
     1 package string;
     2 
     3 /*
     4  * 3.获取两个字符串中最大相同子串。比如:str1 = "abcwerthelloyuiodef";str2 = "cvhellobnm"
     5  */
     6 public class Test3 {
     7     public static void main(String[] args) {
     8         String str1 = "abcwerthelloyuiodef";
     9         String str2 = "cvhellobnm";
    10         StringBuilder str = getMaxSubString(str1, str2);
    11         System.out.println(str);
    12     }
    13 
    14     public static StringBuilder getMaxSubString(String str1, String str2) {
    15         String maxStr = (str1.length() > str2.length()) ? str1 : str2;
    16         String minStr = (str1.length() < str2.length()) ? str1 : str2;
    17         int len = minStr.length();
    18         StringBuilder sb=new StringBuilder();
    19         for (int i = 0; i < len; i++) {
    20             for (int x = 0, y = len - i; y <= len; x++, y++) {
    21                 String str = minStr.substring(x, y);
    22                 if (maxStr.contains(str)) {
    23                     sb.append(str);
    24                 }
    25             }
    26             if(sb.length()!=0){
    27                 return sb;
    28             }
    29         }
    30         return null;
    31     }
    32 
    33 }
  • 相关阅读:
    染色问题的算法(转)
    函数的定义域和定义区间的区别(转)
    详解c++指针的指针和指针的引用(转)
    母函数(转)
    别人整理的DP大全(转)
    HDU 1430 魔板(康托展开+BFS+预处理)
    ZZULIOJ 1726 迷宫(BFS+小坑)
    NBUT 1635 Explosion(最小顶点覆盖)
    NBUT 1602 Mod Three(线段树单点更新区间查询)
    NBUT 1028 该减肥了(简单递推)
  • 原文地址:https://www.cnblogs.com/String-likainian/p/5824923.html
Copyright © 2011-2022 走看看