A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋发吧小白 高级黑马   /  2014-11-5 09:19  /  887 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 奋发吧小白 于 2014-11-5 10:22 编辑
  1. package String类小练习;

  2. import java.util.Iterator;
  3. import java.util.Map;
  4. import java.util.Set;
  5. import java.util.TreeMap;

  6. public class MyTrim {
  7.         public static void main(String[] args) {
  8.                 String s1 = " akkcdehellowaskkjdl  ";
  9.                 String s2 = "cshellowds";
  10.                 System.out.println(myTrim(s1));
  11.                 System.out.println(myReverse(s1));
  12.                 System.out.println(getSubCount(s1,"kk"));
  13.                 System.out.println(getMaxSubStr(s1,s2));
  14.                 getCharCoutInStr(s1);
  15.         }
  16.         //去除字符串两端的空格
  17.         public static String myTrim(String s)
  18.         {
  19.                 int start = 0;
  20.                 int end = s.length()-1;
  21.                 while(start < end && s.charAt(start)==' ')
  22.                         start++;
  23.                 while(start < end &&s.charAt(end)==' ')
  24.                         end--;
  25.                 String newStr = s.substring(start,end+1);
  26.                 return newStr;
  27.         }
  28.         //翻转字符串
  29.         public  static String myReverse(String s)
  30.         {
  31.                 String newStr = new String();
  32.                 char [] chs = s.toCharArray();
  33.                 for(int i=chs.length-1;i>=0;i--)
  34.                 {
  35.                         newStr+=chs[i];
  36.                 }
  37.                 return newStr;
  38.         }
  39.         //获取一个字符串在另一字符串中出现的次数
  40.         public static int getSubCount(String s,String key)
  41.         {
  42.                 int count = 0;//计数器,记录每次出现的次数
  43.                 int index = 0;//记录每次出现的角标位置
  44.                 while((index =s.indexOf(key))!=-1)
  45.                 {
  46.                         count++;
  47.                         s = s.substring(index+key.length(),s.length());
  48.                 }
  49.                 return count;
  50.         }
  51.         //获取两个字符串中相同的最大子串
  52.         public static String getMaxSubStr(String s1,String s2)
  53.         {
  54.                 String maxStr = new String();
  55.                 String max = (s1.length()>s2.length())?s1:s2;
  56.                 String min = (max == s1)?s2:s1;
  57.                 for(int i=0;i<min.length();i++)
  58.                 {
  59.                         for(int start = 0,end = min.length()-1;end!=min.length()+1;start++,end--)
  60.                         {
  61.                                 maxStr = min.substring(start,end);
  62.                                 if(max.contains(maxStr))
  63.                                 {
  64.                                         return maxStr;
  65.                                 }
  66.                         }
  67.                 }
  68.                 return null;
  69.         }
  70.         //获取字符在字符串出现的次数
  71.         public static void getCharCoutInStr(String s)
  72.         {
  73.                 int count = 0;
  74.                 Map<Character, Integer> mp = new TreeMap<Character, Integer>();
  75.                 char [] chs = s.toCharArray();
  76.                 for(int i = 0;i<chs.length;i++)
  77.                 {
  78.                         if(chs[i]>='a'&&chs[i]<='z'||chs[i]>='A'&&chs[i]<='Z')
  79.                         {
  80.                                 if(!mp.containsValue(chs[i]))
  81.                                 {
  82.                                         mp.put(chs[i], 1);
  83.                                 }
  84.                                 else
  85.                                 {
  86.                                         count = mp.get(chs[i])+1;
  87.                                         mp.put(chs[i], count);
  88.                                 }
  89.                         }
  90.                        
  91.                 }
  92.                 //取出集合中的元素
  93.                 Set<Character> keySet = mp.keySet();
  94.                 Iterator<Character> it = keySet.iterator();
  95.                 while(it.hasNext())
  96.                 {
  97.                         Character key = it.next();
  98.                         Integer value = mp.get(key);
  99.                         System.out.print(key+"("+value+")");
  100.                 }
  101.         }
  102. }
复制代码

String类的常见的四个小练习:
1:自己定义一个方法去除一个字符串两端的空格(不能使用trim()方法)
2:自定义一个方法翻转字符串
3:获取一个字符串在另一个字符串中出现次数
4:获取两个字符串中相同的最大子串
abcdehellowaskjdl
cshellowds
最大子串为“hellow”
  1. <blockquote><font size="2">//获取字符在字符串出现的次数</font>
复制代码



评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马