Solidity에서 문자열의 길이를 얻는 방법
2059 단어 solidity
전제
Solidity v0.5.0에서
현재, 캐릭터 라인(String)에는 length 메소드가 존재하지 않는다.
그러나 bytes에는 length 메소드가 존재하고 있다.
방법
따라서 문자열을 한 번 바이트로 변환 한 다음 바이트의 길이 (uint)를 얻음으로써 문자열 길이를 얻습니다.
string -> bytes -> uint
환경
샘플 코드
이하에 그 코드를 기재하고 있으므로, Remix등으로 시험해 주셨으면 한다.
예를 들어, "hoge"라는 문자열을 주면 len은 4가 된다.
pragma solidity ^0.5.0;
contract StrLen {
function getStrLen(string memory _str) public returns(uint) {
uint len = bytes(_str).length;
return len;
}
}
샘플을 움직인 결과
getStrLen("hoge")
len: 4
다만, 문자열에 히라가나 등을 주면 당연히 상정외의 수치가 돌아오므로 주의.
getStrLen("ぽよ")
len: 6
Reference
이 문제에 관하여(Solidity에서 문자열의 길이를 얻는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/arika_nashika/items/61f56dbf03a60b32f545텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)