Concatenate Strings in Solidity

Published by Mario Oettler on

Concatenating two strings in Solidity can be done this way:

String string_3 = string.concat(string_1, string_2);

This is possible since solidity 0.8.12.

Before, concatenating two strings in Solidity was done by using abi.encodePacked(),

        bytes memory cBytes = abi.encodePacked(_a, _b);

        string memory c = string(cBytes);

String manipulation in Solidity is very rudimentary (aka not existent). Those operations should be done outside of a transaction and only the result should be submitted to the smart contract.

Example

The following code example shows both ways:

pragma solidity 0.8.20;

contract concatStrings{

    function concatMyStrings(string memory _a, string memory _b) public view returns(string memory c){
        return(string.concat(_a, _b));
    }

    function concatMyStrings2(string memory _a, string memory _b) public view returns(string memory c){
        bytes memory cBytes = abi.encodePacked(_a, _b);
        string memory c = string(cBytes);
        return c;
    }
}
Categories: