solidity字符串拼接
如果你希望马上开始学习以太坊DApp开发,可以访问汇智网提供的出色的在线互动教程:
- 以太坊DApp实战开发入门
- 去中心化电商DApp实战开发
当你开始学习使用solidity开发以太坊智能合约之后,很快你会碰到一个问题:
在solidity中该如何拼接字符串?
可能你已经试过了,下面的代码试图把两个字符串使用相加的运算符连接起来,但是这行不通:
var str = 'asdf'
var b = str + 'sdf'
复制代码
实际上,根据solidity的官方文档,目前在solidity中,需要我们自己来实现字符串拼接功能。
拼接字符串实现代码
例如,下面的代码实现两个字符串的拼接,基本 上是利用bytes和string之间的类型转换来实现字符串拼接:
contract EzDemo {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 + _bc.length + _bd.length + _be.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);}
}
复制代码
上面的代码很容易扩展到拼接多个字符串。
使用第三方库
不过好在有人写了一个库,可以让我们省些力气:
import "github.com/Arachnid/solidity-stringutils/strings.sol";contract C {using strings for *;string public s;function foo(string s1, string s2) {s = s1.toSlice().concat(s2.toSlice());}
}
复制代码
以太坊开发入门免费教程
solidity字符串拼接相关推荐
- Java案例——字符串拼接
Java案例--字符串拼接案例 1.案例需求 定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果 例如,数字为int[] arr = {1,2,3}; ...
- JSON字符串 拼接与解析
常用方式: json字符串拼接(目前使用过两种方式): 1.运用StringBuilder拼接 StringBuilder json = new StringBuilder(); json.appen ...
- 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 字符串,是Java中最常用的一个数据类型了.关于字符串的知识,作者 ...
- 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 本文,也是对于Java中字符串相关知识的一个补充,主要来介绍一下字 ...
- Python字符串方法:字符串拼接、截取、转数字
这节课程我们主要讲有关Python字符串的用法,包括字符串的拼接.字符串怎么转数字.字符串的格式化.字符串函数等内容. 1.Python字符串的拼接 拼接方式很简单-我们可以用"+" ...
- python加号换行,Python字符串拼接六种方法介绍
Python字符串拼接的6种方法: 1.加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用"+"来连接两个字符串: prin ...
- Javascript 中的长字符串拼接
字符串拼接是所有程序设计语言都需要的操作.当拼接结果较长时,如何保证效率就成为一个很重要的问题.C 语言的 strcat 函数直接操作内存,效率自然最高:C++ 的 string 类是可变的,本质上也 ...
- 将页面多个下拉框的值以字符串拼接方式存放至数据库一个字段中
1,当页面中有多个值,传入Controller并以字符串拼接方式,以","隔开存放至数据库一个字段中,页面中多个<select name="off"&g ...
- MySQL时间增加、字符串拼接
MySQL时间增加.字符串拼接 SELECT DATE_ADD(startTime, INTERVAL 10 SECOND); CONCAT(string1,string2,-) 转载于:https ...
最新文章
- Apache POI和EasyExcel 第三集:Apache POI的Excel大数据量写入(分为03版的xls、07版的xlsx、升级版SXSSF)
- Java-笔记16-复习
- 【原创】C#中的抽象类(abstract class)和接口(interface)的比较
- Insus Binary Utility
- win7制作ntp服务器,如何将Win7作为NTP服务器
- ios打包ipa的四种实用方法(.app转.ipa)
- 中国联通在香港正式推出5G服务
- 你真的了解特洛伊木马吗!
- 一个完整的汇编程序结构
- python32位系统下载_python 32位安装包
- Linux命令brctl介绍
- PDF编辑方法,如何裁剪PDF中的一页
- JavaWeb之路02--请求与响应
- Unity3d编辑器的使用
- html 项目实战摄影开课吧,最新《开课吧Web全栈架构师正式课》(Vue.JS及实战项目)...
- 入驻csdn的自我介绍
- 极智开发 | ubuntu 安装有线网卡驱动
- 【微信小程序】--注册小程序账号安装开发者工具(一)
- Eclipse项目红叉:报错Description Resource Path Location Type Target runtime Apache Tomcat v8.0 is not defin
- 几个数字的组合方式种类个数
热门文章
- java string类型_java中String类型
- 路由器01---k2刷Pandora
- 【转】漫画:Bitmap算法
- [Swift]LeetCode556. 下一个更大元素 III | Next Greater Element III
- Celery 之异步任务、定时任务、周期任务
- python学习[第十三篇] 条件和循环
- 微信小程序----全局变量
- setTimeout详解
- 10、自学——Linux的学习进度与任务【用户和用户组相关操作】
- Cannot open include file: jni.h: No such file or directory解决方法