Solidity

如何在solidity中將變數添加到字元串中?

  • June 7, 2022

我想將提取的Str 變數添加到路徑中?

bytes memory extractedStr;
string memory combine = '<path d="string(extractedStr)" fill="#FFFFFF"/>';

您的問題基本上是字元串連接問題。

從 Solidity 開始v0.8.12,您可以使用以下方法輕鬆連接字元串:

string.concat(s1, s2)

您可以檢查有關字元串和字節的solidity 文件以獲取文件參考。

在您的情況下,這應該可以幫助您連接字元串:

string public s1 = "string(";
string public s2 = ")";
bytes public yourBytes = '0x100';
string public combined;

function combine() public {
   combined = string.concat(s1, string(extractedStr), s2);
}

組合的字元串變數現在將返回:

'string(0x100)'

0.8.12 或更高版本

   function concatA() external pure returns (string memory) {
       bytes memory extractedStr = '0xFFFF00';
       return string.concat('<path d="', string(extractedStr) ,'" fill="#FFFFFF"/>');
   }

結果 0:字元串:<path d="0xFFFF00" fill="#FFFFFF"/>

否則對於早期版本

   function concatB() external pure returns (string memory) {
       bytes memory extractedStr = '0xFFFF00';
       return string(abi.encodePacked('<path d="', string(extractedStr) ,'" fill="#FFFFFF"/>'));
   }

結果 0:字元串:<path d="0xFFFF00" fill="#FFFFFF"/>

引用自:https://ethereum.stackexchange.com/questions/129735