php字符串统计次数的各种方法(转)
<?php
$str = 'AbCdEfGaBcDeFgH0234;,!-AaBbCcDdEeFfGg'; $str = strtoupper($str); // 不区分大小写时,全部转换成大写或者小写 // 方法一
$res = array(); // 定义一个结果集空数组
$arr = str_split($str); // 将字符串转换成数组
$res = array_count_values($arr); // 统计数组中各个值出现的次数
var_dump($res); // 方法二
$res = array(); // 定义一个结果集空数组
$arr = str_split($str); // 将字符串转换成数组
foreach ($arr as $key => $val) { // 便利字符串数组
if (!isset($res[$val])) { // 如果结果集不存在以某个字符为 key 的键
$res[$val] = 1; // 将其数量设置为 1
} else {
$res[$val] += 1; // 否则在其基础上数量加 1
}
}
var_dump($res); // 方法三
$res = array(); // 定义一个结果集空数组
$arr = str_split($str); // 将字符串转换成数组
$unique = array_unique($arr); // 数组字符去重
foreach ($unique as $key => $val) {
$res[$val] = substr_count($str, $val); // 统计某字符在字符串中出现的次数
}
var_dump($res); // 方法四 ASCII 思路
$res = array(); // 定义一个结果集空数组
$arr = str_split($str); // 将字符串转换成数组
foreach ($arr as $key => $val) {
$ascii = ord($val);
if (!isset($res[$ascii])) {
$res[$ascii] = 1;
} else {
$res[$ascii] += 1;
}
} foreach ($res as $key => $val) {
$res[chr($key)] = $val;
unset($res[$key]);
} var_dump($res); /**
* 在 PHP 中字符串本身是有下标的 举个例子:
* $str = 'AaBbCcDdEeFfGg';
* $str[0] 对应的是字符 A $str[2] 对应的是字符 B
* 所以根据这个特性,以上方法二和方法四可以延伸出另外两种方法
*/ // 方法五
$res = array(); // 定义一个结果集空数组
$strLen = strlen($str); // 计算字符串的长度
for ($i = 0; $i < $strLen; $i++) { // 便利字符串数组
if (!isset($res[$i])) { // 如果结果集不存在以某个字符为 key 的键
$res[$i] = 1; // 将其数量设置为 1
} else {
$res[$i] += 1; // 否则在其基础上数量加 1
}
}
var_dump($res); // 方法六
$res = array(); // 定义一个结果集空数组
$strLen = strlen($str); // 计算字符串的长度
for ($i = 0; $i < $strLen; $i++) { // for 循环每一个字符
$ascii = ord($str[$i]); // 将字符转换成 ASCII 码
if (!isset($res[$ascii])) {
$res[$ascii] = 1;
} else {
$res[$ascii] += 1;
}
} foreach ($res as $key => $val) { // 遍历结果集
$res[chr($key)] = $val; // 将 ASCII 码再次转换成普通字符
unset($res[$key]); // 删除原有 ASCII 码的 key
}
var_dump($res);
php字符串统计次数的各种方法(转)的更多相关文章
- 用Regex类计算一个字符串出现次数是最好方法【转载】
我的一个朋友问我,怎么在c#或vb.net中,计算一个字符串中查找另一个字符串中出现的次数,他说在网上打了好多方法,我看了一下,有的是用replace的方法去实现,这种方法不是太好,占资源太大了.其实 ...
- JavaScript 字符串函数 之查找字符方法(一)
1.JavaScript查找字符方法 首先看一张 有关字符串函数的查找字符的方法图 接下里补充里面的方法说明 2.charAt() charAt() 方法返回字符串中指定位置的字符 语法 ...
- Java 一个字符串在另外一个字符串出现次数
统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java ...
- 给出一个string字符串,统计里面出现的字符个数
给出一个string字符串,统计里面出现的字符个数 解决方案: 使用algorithm里面的count函数,使用方法是count(begin,end,'c'),其中begin指的是起始地址,end指的 ...
- golang中获取字符串长度的几种方法
一.获取字符串长度的几种方法 - 使用 bytes.Count() 统计 - 使用 strings.Count() 统计 - 将字符串转换为 []rune 后调用 len 函数进行统计 ...
- sh_15_字符串统计操作
sh_15_字符串统计操作 hello_str = "hello hello" # 1. 统计字符串长度 print(len(hello_str)) # 2. 统计某一个小(子)字 ...
- HDOJ2017字符串统计
字符串统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- golang 字符串统计
golang内建只认utf8 如果传递的字符串里含有汉字什么的,最好使用 utf8.RuneCountInString() 统计 字符串统计几种方法: - 使用 bytes.Count() 统计- 使 ...
- linux shell脚本编程笔记(四): 获取字符串长度的七种方法
获取字符串长度的七种方法 1. \${#str} 2.awk的length 备注:1) 最好用{}来放置变量2) 也可以用length($0)来统计文件中每行的长度 3.awk的NF 备注: -F为分 ...
随机推荐
- MI200e电力线通讯
最近做课设,选了电力线通讯这种途径,经过百度google等一番查询,最终敲定了mi200e这块国产芯片. 课设要求就是双机通讯,互传传感器信息以及模拟一个时钟 然后淘宝买了拆机的成品,我拿回来把mcu ...
- Pandas 学习笔记
Pandas 学习笔记 pandas 由两部份组成,分别是 Series 和 DataFrame. Series 可以理解为"一维数组.列表.字典" DataFrame 可以理解为 ...
- oracle 根据出生日期计算年龄的年月日
select years,months,abs( trunc( newer_date- add_months( older_date,years*12+months ) ) ) days from ( ...
- loadrunner中web_reg_save_param和web_reg_save_param_ex的区别
在使用Loadrunner进行性能测试,编写接口请求脚本时,通过会用到关联函数,而web_reg_save_param和web_reg_save_param_ex的函数有什么区别呢?以下为总结的两点, ...
- vue-路由懒加载
将import ... from..改为 const Foo = resolve => require(['./Foo.vue'], resolve)
- 【警告】WARN: Establishing SSL connection without server's identity verification is not recommended.
1.Java访问Mysql时出现如下警告: 2019-04-02 10:30:50.545 INFO 1290 --- [nio-8080-exec-1] com.zaxxer.hikari.Hika ...
- 第二周javaweb学习进度表
第一周 所花时间 三天 代码量 200行 博客量 3篇 知识点了解到的 学习到了HTML编程语言的相关知识比如checkbox复选框和radio单选按钮以及form表单的使用方法,form表单可以 ...
- yii中的restful方式输出并调用接口和判断用户是否登录状态
//创建一个控制器接口 返回的是restful方式 <?php namespace frontend\controllers; use frontend\models\Fenlei; use f ...
- Flask框架整理
Flask基础部分 Flask目录结构(蓝图) views中存放蓝图,每个蓝图也可以有自己的模板,用蓝图对不同功能的视图函数进行隔离,类似于django中的app pro_flask包的init.py ...
- 非阻塞IO发送http请求
import socket from urllib.parse import urlparse from selectors import DefaultSelector, EVENT_READ, E ...