【Solidity】文字列を連結するには?

Solidityで文字列を連結する方法について解説します。

構文

Solidityで文字列を連結するには、以下のように行います。

string(abi.encodePacked(文字列1, 文字列2 [, ...[, 文字列n]]))

サンプルコード

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Test {

    function strConcat(string memory str1, string memory str2) public pure returns(string memory) {
        // 文字列連結
        return string(abi.encodePacked(str1, str2));
    }

}

文字列操作ということで、やはりabi.encodePacked()が出てきましたね。EVM(Ethereum Virtual Machine)では文字列を直接扱えないため、Solidityにおける文字列操作といえば、abi.encodePacked()によりABIエンコーディングしEVMが扱える形へ変換することがセットになることをおさえておきましょう。

タイトルとURLをコピーしました