Solidity
如何在solidity中將變數添加到字元串中?
我想將提取的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"/>