如果你希望马上开始学习以太坊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字符串拼接相关推荐

  1. Java案例——字符串拼接

    Java案例--字符串拼接案例 1.案例需求 定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果 例如,数字为int[] arr = {1,2,3}; ...

  2. JSON字符串 拼接与解析

    常用方式: json字符串拼接(目前使用过两种方式): 1.运用StringBuilder拼接 StringBuilder json = new StringBuilder(); json.appen ...

  3. 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 字符串,是Java中最常用的一个数据类型了.关于字符串的知识,作者 ...

  4. 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 本文,也是对于Java中字符串相关知识的一个补充,主要来介绍一下字 ...

  5. Python字符串方法:字符串拼接、截取、转数字

    这节课程我们主要讲有关Python字符串的用法,包括字符串的拼接.字符串怎么转数字.字符串的格式化.字符串函数等内容. 1.Python字符串的拼接 拼接方式很简单-我们可以用"+" ...

  6. python加号换行,Python字符串拼接六种方法介绍

    Python字符串拼接的6种方法: 1.加号 第一种,有编程经验的人,估计都知道很多语言里面是用加号连接两个字符串,Python里面也是如此直接用"+"来连接两个字符串: prin ...

  7. Javascript 中的长字符串拼接

    字符串拼接是所有程序设计语言都需要的操作.当拼接结果较长时,如何保证效率就成为一个很重要的问题.C 语言的 strcat 函数直接操作内存,效率自然最高:C++ 的 string 类是可变的,本质上也 ...

  8. 将页面多个下拉框的值以字符串拼接方式存放至数据库一个字段中

     1,当页面中有多个值,传入Controller并以字符串拼接方式,以","隔开存放至数据库一个字段中,页面中多个<select name="off"&g ...

  9. MySQL时间增加、字符串拼接

    MySQL时间增加.字符串拼接 SELECT DATE_ADD(startTime,  INTERVAL 10 SECOND); CONCAT(string1,string2,-) 转载于:https ...

最新文章

  1. Apache POI和EasyExcel 第三集:Apache POI的Excel大数据量写入(分为03版的xls、07版的xlsx、升级版SXSSF)
  2. Java-笔记16-复习
  3. 【原创】C#中的抽象类(abstract class)和接口(interface)的比较
  4. Insus Binary Utility
  5. win7制作ntp服务器,如何将Win7作为NTP服务器
  6. ios打包ipa的四种实用方法(.app转.ipa)
  7. 中国联通在香港正式推出5G服务
  8. 你真的了解特洛伊木马吗!
  9. 一个完整的汇编程序结构
  10. python32位系统下载_python 32位安装包
  11. Linux命令brctl介绍
  12. PDF编辑方法,如何裁剪PDF中的一页
  13. JavaWeb之路02--请求与响应
  14. Unity3d编辑器的使用
  15. html 项目实战摄影开课吧,最新《开课吧Web全栈架构师正式课》(Vue.JS及实战项目)...
  16. 入驻csdn的自我介绍
  17. 极智开发 | ubuntu 安装有线网卡驱动
  18. 【微信小程序】--注册小程序账号安装开发者工具(一)
  19. Eclipse项目红叉:报错Description Resource Path Location Type Target runtime Apache Tomcat v8.0 is not defin
  20. 几个数字的组合方式种类个数

热门文章

  1. java string类型_java中String类型
  2. 路由器01---k2刷Pandora
  3. 【转】漫画:Bitmap算法
  4. [Swift]LeetCode556. 下一个更大元素 III | Next Greater Element III
  5. Celery 之异步任务、定时任务、周期任务
  6. python学习[第十三篇] 条件和循环
  7. 微信小程序----全局变量
  8. setTimeout详解
  9. 10、自学——Linux的学习进度与任务【用户和用户组相关操作】
  10. Cannot open include file: jni.h: No such file or directory解决方法