关于字符串的一些操作

1、查询字符串中出现最多的字符和个数的算法。例如字符串“abaaas”出现最多的是a,出现4次,算法js描述

//第一种思路:借助json格式来实现
    function getMore(str) {
        var result = {};
        var num = 0;
        var value = "";
        //将字符串以json格式存储到result中,并统计其个数
        for (var i = 0; i < str.length; i++) {
            if (!result[str[i]]) {//判断json对象中有没有该属性,没有则添加
                result[str[i]] = 1;
            } else {//若json中有该属性,则将其值+1
                result[str[i]]++;
            }
        }
        //通过遍历result寻找出现次数最多的字符
        for (var attr in result) {//
            if (num < result[attr]) {
                num = result[attr];
                value = attr;
            }
        }
        return "出现最多的字符是:" + value + ",出现了" + num + "次.";
    }
    //第二种思路:对字符串先进行排序,然后再利用正则进行匹配,使用replace方法的回调函数
    function getMore(str) {
        var arr = str.split("");
        var num = 0, value = "";
        arr.sort();
        str = arr.join("");
        var reg = /(\w)\1+/g;//\1代表与前面子项相同
        str.replace(reg, function ($0, $1) {
            if (num < $0.length) {
                num = $0.length;
                value = $1;
            }
        });
        return "出现最多的字符是:" + value + ",出现了" + num + "次.";
    }

2、将字符串转为千分制?例如将‘1234567’转为1,234,567

/思路:千分制每三位一组,所以先让字符串长度对3取余,余数不为0时,求前边一组然后再以此三位存到数组中
    function thousandTransformer(str) {
        var r = str.length % 3;
        var prev = "";
        var arr = [];
        var count = 0;
        var temp = "";
        if (r != 0) {//余数不为0时,截取0到余数的字符串为数组第一项
            prev = str.slice(0, r);
            arr.push(prev);
        }
        for (var i = r; i < str.length; i++) {//每三位进数组
            count++;
            temp += str[i];
            if (count % 3 === 0 && temp) {
                arr.push(temp);
                temp = "";
            }
        }
        return arr.join(",");
    }

第二种思路:使用正则

function thousandTransformer(){

        var reg=/(?=(?!\b)(\d{3})+$)/g;//?=前向声明只匹配位置;?!后向声明,
        return str.replace(reg,‘,‘);
    }

3、返回一个只包含数字类型的一个数组?例如“fhu123kkk456g”转换为[123,78,653];

//使用正则
    function getNumberArray(str){
        var reg=/\d+/g;
        return str.match(reg);
    }

普通字符串操作

function getNumberArray(str) {
        var temp = "";
        var arr = [];
        for (var i = 0; i < str.length; i++) {
            if (str[i].charCodeAt() >= 48 && str[i].charCodeAt() <= 57) {
                temp += str[i];
            } else {
                if (temp) {
                    arr.push(temp);
                    temp = "";
                }
            }
        }
        return arr;
    }
时间: 2024-10-13 22:22:21

关于字符串的一些操作的相关文章

字符串的分割操作(strtok,split)

一:strtok C/C++:char *strtok(char s[], const char *delim); s 代表需要分割的字符串,delim代表分割的标志,参数都为比选!返回指向分割部分的指针,如果没有分割成功就返回NULL. 一个简单的例子: void main() { char *str = "jscese test strtok"; char *delim = " "; char *pstr = NULL; pstr = strtok(str, d

C对字符串的部分操作

字符串分割(C++) 经常碰到字符串分割的问题,这里总结下,也方便我以后使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串,delim为分隔符字符串. 返回值:从str开头开始的一个个被分割的串.当没有被分割的串时则返回NULL. 其它:strtok函数线程不安全,可以使用strtok_r替代. 示例: 1 //借助strtok实现split

JS中字符串的相关操作

(转自:http://www.cnblogs.com/zhaoxinxin/articles/1402733.html) 一.字符串的创建 创建一个字符串有几种方法. 最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量. var myStr = "Hello, String!"; 可以用双引号或单引号将字符串包含,但要注意,作为界定字符串的一对引号必须是相同的,不能混用. 像var myString = "Fluffy is a pretty cat.'; 这样

字符串的简单操作

字符串 String是类,不是基本数据类型. String对象的创建方法 1. String s=“hello”; 2. String s=new String(“hello”); 3. char chars[]={‘x',‘y',‘z'}; String s1=new String(chars); String s2=new String(chars,0,2); “==”和equals()的区别 ==:判断两个字符串在内存中的地址,即判断是否是同一个字符串对象 equals():检查组成字符串

PHP字符串常用的操作函数

PHP字符串常用的操作函数 strval 把变量转换成字符串 strrev 反转字符串 trim 去掉字符串首尾半角空格 ltrim 去掉左边半角的英文空格 rtrim 去掉右边半角的英文空格 strlen 取字符串的长度 long length substr 截取子字符串 strrchr 查找字符在字符串中最后出现的位置 strpos 取字符串首次出现的位置 addslashes 字符串转义 strcmp 比较二个字符串的大小 1 0 -1 chr 返回ASC||值对应的字符 ord 返回字符

c语言实现字符串的各种操作

以下是我用c语言实现数据结构中字符串的各种操作   #pragma once      #ifndef _STDLIB_H  #define _STDLIB_H    #include <stdlib.h>  #endif    #ifndef _SIXE_H  #define _SIZE_H    #define SIZE              100  #endif    #ifndef _STRING_H  #define _STRING_H    typedef struct  {

Python中的字符串及其相关操作

1.表示: 字符串可以用单引号或者双引号括起来,两者效果是完全一样的. 针对较长的字符串,也可以用三个引号括起来,即"""..."""或者'''...'''.引号里面再用与之不同类型的引号会被当做是普通字符,不会报错,如    '"Yes," he said.',或"doesn't". 2.换行: 字符串可以跨多行.一种方法是使用三引号:"""...""&q

Python字符串的常用操作学习

1 >>> name = "I love my job!" 2 >>> name.capitalize() #首字母大写 3 'I love my job!' 4 >>> name.count("o") #统计字母个数 5 2 6 >>> name.center(50,"-") #输出50个字符,不够以"-"补全,并且name放在中间;name.ljust

归纳整理Linux下C语言常用的库函数----内存及字符串控制及操作

在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. 字符串转换 3. 字符测试 4. 文件操作 5. 时间日期 6. 常用数学函数 7. 文件内容操作 8. 文件权限控制 9. 进程操作 10. 线程操作 11. Socket操作 12. 信号处理 13. 数据结构及算法 以下是对第一项 内存及字符串控制及操作 的归纳整理. 已经不赞成使用的函数归类

C#中定义数组--字符串及数组操作

一.一维: int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二.多维 int[,] numbers = new int[,]{{1,2,3},{1,2,3}}; //不定长 int[,] numbers = new int[2,2]{{1,2},{1,2}}; //定长 三.例子 A:int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包