字符串处理
优质
小牛编辑
133浏览
2023-12-01
StringBuffer
是一个字符串拼接工具,和java中的StringBuilder类似。对于那些需要大量的字符串连接的时候,用 StringBuffer 更高效一些。它实现了以下API:
class StringBuffer {
public function __construct($str);
public function isEmpty();
public function append($str);
public function appendLine($str);
public function appendTab($str, $tabNum=1);
public function toString();
}
构造函数提供一个参数,用来初始化 StringBuffer.
public function isEmpty()
该方法用来判断 StringBuffer 是否为空
$sb = new StringBuffer();
var_dump($sb->isEmpty());
//输出 true
$sb->append("abc");
var_dump($sb->isEmpty());
//输出 false
public function append();
往 StringBuffer 追加内容, 可以是字符串,数字,也可以是一维数组
public function appendLine($str);
往 StringBuffer 追加一行内容,与 append()
方法不同的是,它会在字符串末尾追加一个换行符。 这个对于生成一定格式的文档会有比较帮助,比如后面我们在实现 gmodel扩展 时候就大量用到她。
public function appendTab($str, $tabNum=1);
这个方法更牛逼一些,支持在字符串前面追加tab制表符,也是用来生成有格式的文档的,下面举一个生成php文档的栗子:
$sb = new StringBuffer("<?php\n");
$sb->appendLine('namespace app\\action');
$sb->appendLine('class StringBuffer {');
$sb->appendTab('public function __construct($str);', 1);
$sb->appendTab('public function isEmpty();', 1);
$sb->appendLine("}");
echo $sb->toString();
上面代码会输出
<?php
namespace app\action
class StringBuffer {
public function __construct($str);
public function isEmpty();
}
public function toString();
此方法提供将 StringBuffer 转换成字符串输出。
StringUtils
public static function genGlobalUid($forceUnique=false)
创建分布式唯一ID, 在高并发的情况下,重复的概率是1.84456182×1的19次方分之一。这个概率小于地球毁灭的时间,当然如果你有强迫证的话,我们还为你提供了一个 $forceUnique
参数,如果设置为true的话,那么就可以保证你产生的ID是绝对唯一的。返回id的格式是一个32位的字符串。
$id = StringUtils::genGlobalUid();
echo $id;
//类似输出 b21a57cd0e6801bbd324fdaa72764535
- public static function jsonEncode($array) //数组转json字符串
- public static function jsonDecode($string) //json字符串数组