सॉलिडिटी - स्ट्रिंग्स

सॉलिडिटी स्ट्रिंग बोली को दोहरे उद्धरण चिह्नों (") और एकल उद्धरण (') दोनों का उपयोग करते हुए समर्थन करती है। यह स्ट्रिंग के एक वेरिएबल को घोषित करने के लिए डेटा प्रकार के रूप में स्ट्रिंग प्रदान करता है।

pragma solidity ^0.5.0;

contract SolidityTest {
   string data = "test";
}

उपरोक्त उदाहरण में, "परीक्षण" एक स्ट्रिंग शाब्दिक है और डेटा एक स्ट्रिंग चर है। स्ट्रिंग के बजाय बाइट प्रकारों का उपयोग करने के लिए अधिक पसंदीदा तरीका है क्योंकि बाइट ऑपरेशन की तुलना में स्ट्रिंग ऑपरेशन के लिए अधिक गैस की आवश्यकता होती है। सॉलिडिटी, बाइट्स को स्ट्रिंग और इसके विपरीत के बीच इनबिल्ट रूपांतरण प्रदान करता है। सॉलिडिटी में हम स्ट्रिंग शाब्दिक को एक बाइट 32 प्रकार के वेरिएबल में आसानी से असाइन कर सकते हैं। सॉलिडिटी इसे एक बाइट 32 शाब्दिक के रूप में मानती है।

pragma solidity ^0.5.0;

contract SolidityTest {
   bytes32 data = "test";
}

वर्ण से बचो

अनु क्रमांक। चरित्र विवरण, चारित्रिक व्यौरा, वर्णन, व्याख्या
1

\n

एक नई लाइन शुरू करता है।

2

\\

बैकस्लैश

3

\'

एकल बोली

4

\"

दोहरे उद्धरण

5

\b

बैकस्पेस

6

\f

फ़ीड बनाएं

7

\r

कैरिज रिटर्न

8

\t

टैब

9

\v

लंबवत टैब

10

\xNN

हेक्स मूल्य का प्रतिनिधित्व करता है और उपयुक्त बाइट्स सम्मिलित करता है।

1 1

\uNNNN

यूनिकोड मूल्य का प्रतिनिधित्व करता है और UTF-8 अनुक्रम सम्मिलित करता है।

बाइट्स से स्ट्रिंग रूपांतरण

बाइट्स स्ट्रिंग () कंस्ट्रक्टर का उपयोग करके स्ट्रिंग में परिवर्तित किया जा सकता है।

bytes memory bstr = new bytes(10);
string message = string(bstr);

उदाहरण

निम्नलिखित कोड को समझने की कोशिश करें कि स्ट्रिंग सॉलिडिटी में कैसे काम करती है।

pragma solidity ^0.5.0;

contract SolidityTest {   
   constructor() public{       
   }
   function getResult() public view returns(string memory){
      uint a = 1; 
      uint b = 2;
      uint result = a + b;
      return integerToString(result); 
   }
   function integerToString(uint _i) internal pure 
      returns (string memory) {
      
      if (_i == 0) {
         return "0";
      }
      uint j = _i;
      uint len;
      
      while (j != 0) {
         len++;
         j /= 10;
      }
      bytes memory bstr = new bytes(len);
      uint k = len - 1;
      
      while (_i != 0) {
         bstr[k--] = byte(uint8(48 + _i % 10));
         _i /= 10;
      }
      return string(bstr);
   }
}

सॉलिडिटी फर्स्ट एप्लीकेशन चैप्टर में दिए गए चरणों का उपयोग करके उपरोक्त प्रोग्राम को चलाएं ।

उत्पादन

0: string: 3