• String的常见操作(面试题)


    String的常见操作(面试题)

    将字符串逆序输出

        public static String inverse(String str ){
    
            char chars[] = str.toCharArray();
            for(int i=0;i<chars.length/2;i++){
                char temp = chars[i];
                chars[i] = chars[chars.length-i-1];
                chars[chars.length-i-1] = temp ;
            }
    
            return String.valueOf(chars) ;
        }
    

    返回出现频率最高的字符

        public static char findHighRateChar(String str){
            int  max_num_char = 0;
            char highRateChar = ' ';
            Map<String,Integer> map = new HashMap<String,Integer>();
            char chars[] = str.toCharArray();
            for(int i=0;i<chars.length;i++){
                String char_i = String.valueOf(chars[i]);
                if(map.containsKey(char_i)){
                    map.put(char_i,map.get(char_i)+1);
                    if(map.get(char_i) > max_num_char ){
                        max_num_char = map.get(char_i);
                        highRateChar = chars[i];
                    }
                }else{
                    map.put(String.valueOf(chars[i]),1);
                }
            }
            return highRateChar;
        }
    

    找出字符串中最长的那个对称字符串

    /*找最长对称字符串,应该重最大长度开始找,找到就返回
        如果从最小开始找的话,效率好低,那找到一个还要继续找,直到找到最长的为止
        如果找对称的个数的话那就另当别论了,必须得所有都判断
    */
        public static String findMaxSymmetryStr(String str){
            String symmetryStr;
            for (int i = str.length(); i >=2; i--) { //找是否有长度为i的对称串,i从最大开始
                for (int j = 0; j<i-1 ; j++) {
                    symmetryStr = str.substring(j, i);
                    char[] chars = symmetryStr.toCharArray();
                    int k;
                    //判断是否为对称串
                    for (k = 0; k < chars.length/2; k++) {
                        if(chars[k] != chars[chars.length-k-1]){
                            break;
                        }
                    }
                    //如果对称则返回
                    if(k == chars.length/2){
                        return symmetryStr;
                    }
                }
            }
            return "";
        }
    

    找字符串中共有多少个对称的字符串

        public static int findSymmetryStrNum(String str){
         String symmetryStr;
         int count = 0;//用于计数
         for(int i=str.length();i>=2;i--){//至少要二个字符才能判断是否对称
             for(int j=0;j<i-1;j++){
                 char temp[] = str.substring(j,i).toCharArray();
                 int k;
                 for(k=0;k<temp.length/2;k++){
                     if(temp[k] != temp[temp.length-k-1]){
                         break;
                     }
                 }
                 if(k == temp.length/2){
                     count++;
                 }
             }
         }
         return count;
        }
    
  • 相关阅读:
    [luogu p2482] [SDOI2010]猪国杀
    [luogu p2296] 寻找道路
    左右布局(备用复制)
    导出Excel
    流式布局 及 媒体查询
    echarts设置(持续更新)
    解决Vue中watch首次进入路由不触发的问题
    Math.random
    Vue的拖拽
    使的dialog上下左右居中(弹框居中)
  • 原文地址:https://www.cnblogs.com/0427mybirthday/p/7710752.html
Copyright © 2020-2023  润新知