目录

字符串处理

优质
小牛编辑
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字符串数组