solidity语言实现字符串拼接
0. 引言
当你开始学习使用solidity开发以太坊智能合约之后,很快你会碰到一个问题:
在solidity中该如何拼接字符串?
var str = 'Hello'
var b = str + 'World'
可能你已经试过上述代码,但是真的可以吗?
实际上,solidity官方文档表示在目前版本中,需要开发者实现字符串拼接功能。
1. 造轮子
原理:利用bytes和string之间的类型转换来实现字符串拼接。
contract StringUtil {
function strConcat(string _a, string _b) internal returns (string){
bytes memory _ba = bytes(_a);
bytes memory _bb = bytes(_b);
string memory ret = new string(_ba.length + _bb.length);
bytes memory bret = bytes(ret);
uint k = 0;
for (uint i = 0; i < _ba.length; i++) bret[k++] = _ba[i];
for (i = 0; i < _bb.length; i++) bret[k++] = _bb[i];
return string(ret);
}
}
该页面评论已关闭