字符串处理
iteye_18070
这个作者很懒,什么都没留下…
展开
-
十进制转十六进制的方法
今天看PHP的源代码,看到了bin2hex方法的实现,该函数功能是获取某字符的assii码的十六进制表示。本质就是将一个十进制的数转换成十六进制。而改十进制数必须是8位的,即可以通过一个两位的十六进制数表示。其核心算法只有两行:1: data>>42: data&15 最终结果就是:data>>4.data&15 ...原创 2011-06-01 00:37:23 · 578 阅读 · 0 评论 -
字符串中单调递增连续子序列——Bash
该问题和求单调递增子序列有点像,但不一样。其主要区别就是在于连不连续,如果不要求连续(单调递增子序列)在实现时的算法是动态规划,比较复杂。本文描述的问题是子序列连续的问题,相比而言会简单很多,原理和求最大值是一样的。 具体描述为给定一个字符串,求一个子串,该子串满足:1. 连续2. 该子串递增3. 是最长的单调连续递增的子串 例如:zxuhababcba结...2012-06-03 20:37:44 · 222 阅读 · 0 评论 -
bash中将字符串split成数组的方法
相信编程时,字符串的处理是很频繁被处理的问题,其中大家肯定不陌生各种语言的string.split('sp')将字符串按照某个字符或子串切分成一个数组。同样,我们在用shell处理文本信息时也可以方便地实现该功能。这里主要使用了bash中关于字符串变量的处理和array初始化的能力。 如下: #!/bin/bashstr="hello,world,i,like,...2012-03-21 23:55:03 · 3418 阅读 · 0 评论 -
PHP将一个日期字符串转换成举例当前的天数
输入为一个日期字符串,例如:2011-3-23输出为举例当前的天数,例如:1 代码为: public static function convertDateToLong($dateStr){ $checkPattern = "/^\d{4}(((-\d{1,2}){2})|((\.\d{1,2}){2})|((\/\d{1,2}){2}))$/";...2011-03-24 16:55:53 · 304 阅读 · 0 评论 -
php 截取字符串问题
在编程中经常与遇到将一个字符串根据某个字符切分的问题。一般我们会用explode将字符串切分成一个数组,然后进行进一步的操作。但假如有一个需求是要截取一个字符串中某两个相邻的分割字符中间的字串,那么用explode就显得有点浪费了。毕竟很多其他的被截取出来的字串用不到阿。浪费了空间也浪费了计算。 今天发现了一个方法,就是用preg_match。(如有雷同,实属缘分) ...原创 2011-02-27 00:28:41 · 84 阅读 · 0 评论 -
生成固定长度的某字符的字符串 PHP
在编程时,有时候会需要生成固定长度的空格或者特殊字符,以用于数据对齐等。今天讨论用php生成固定长度的某字符的字符串的一些方法。 方法一:二倍迭代拼接 function getchars($c,$length){ $binchars = decbin($length); $binchars_arr = str_split($binchars...2011-02-16 10:56:48 · 552 阅读 · 0 评论 -
查找字符串中出现次数最多的字符
针对该问题,有两种解法,无非就是时间和空间的权衡,在实际应用中根据具体情况而定,具体代码就不写了,分析如下,感兴趣的欢迎PK。[b]第一种解法,[/b]牺牲时间换取空间,具体做法是:1,首先对字符串进行排序,这一步的时间复杂度是固定的。可以有多种排序算法选择。2,扫描排序后字符串,并且统计遇到的每个字符的数量。方法为:如果下一个字符和当前字符不一致,则当前统计到的数据就是该字符在字...原创 2010-12-10 21:13:27 · 378 阅读 · 0 评论 -
再谈PHP中的str_repeat函数实现
前段时间讨论了在PHP中生成某多个某字符或字符串的字符串的问题,呵呵。这句话听起来太别扭了。举个例子就是,生成10个a的字符串就是aaaaaaaaaa。当然这里的a可以是ab或任何其他字符串。 在博客“生成固定长度的某字符的字符串 PHP ”中描述了一共5中方法。也对这五种方法的效率进行了比对,其中以PHP中自带的str_repeat函数效率最优,这也在意料和情理之中。方法4,5都...2011-07-01 00:17:11 · 325 阅读 · 0 评论 -
关于PHP的strtoupper函数
今天看到了PHP实现的标准扩展函数这一段,第一个挑了string相关的函数来看,毕竟这个是用的最多的。看到了strtoupper函数的实现。如下:char *php_strtoupper(char *s, size_t len){ unsigned char *c, *e; c = (unsigned char *)s; e = (uns...2011-06-28 21:49:34 · 394 阅读 · 0 评论 -
会计记账小程序
许久不来,手都有些生疏了。写个小程序热热手先。 假设有一个数字,可以很大,理论上可以无限大。要如何转成其对应的汉子大写? 就是那种支票本上、汇款单上的那种大写金额。 例如: 数字:193817071803800182801088108 大写:壹佰玖拾叁亿捌仟壹佰柒拾万柒仟壹佰捌拾亿叁仟捌佰万壹仟捌佰贰拾捌亿零壹佰零捌万捌仟壹佰零捌 代码...原创 2015-12-10 10:38:01 · 570 阅读 · 0 评论