%02.2hhx
उच्च वोट उत्तर में स्पष्टीकरण :
%
: x
रूपांतरण विनिर्देशक का परिचय देता है ।
02
: परिवर्तित मूल्य की न्यूनतम चौड़ाई 2 है। यदि परिवर्तित मूल्य में फ़ील्ड की चौड़ाई की तुलना में कम बाइट्स हैं, तो इसे 0
बाईं ओर गद्देदार किया जाएगा ।
.2
: x
रूपांतरण विनिर्देशक के लिए प्रदर्शित होने के लिए न्यूनतम अंकों की संख्या देता है ।
hh
: निर्दिष्ट करता है कि x
रूपांतरण विनिर्देशक हस्ताक्षर किए गए चार या अहस्ताक्षरित चार तर्क पर लागू होता है (पूर्णांक पदोन्नति के अनुसार तर्क को बढ़ावा दिया जाएगा, लेकिन इसका मूल्य मुद्रण से पहले हस्ताक्षरित चार्ट या अहस्ताक्षरित चार्ट में परिवर्तित किया जाएगा)।
x
: अहस्ताक्षरित तर्क को शैली "dddd" में अहस्ताक्षरित हेक्साडेसिमल प्रारूप में परिवर्तित किया जाएगा; "abcdef" अक्षरों का उपयोग किया जाता है। सटीक दिखने के लिए न्यूनतम अंकों की संख्या निर्दिष्ट करता है; यदि परिवर्तित किया जा रहा मान कम अंकों में दर्शाया जा सकता है, तो इसे अग्रणी शून्य के साथ विस्तारित किया जाएगा। डिफ़ॉल्ट परिशुद्धता 1. शून्य के स्पष्ट सटीकता के साथ शून्य को परिवर्तित करने का परिणाम कोई वर्ण नहीं होगा।
अधिक जानकारी के लिए, IEEE प्रिंटफ विनिर्देश देखें ।
उपरोक्त स्पष्टीकरण के आधार पर, मुझे लगता है कि इसे बदलना बेहतर %02.2hhx
है %02x
या %.2x
।
स्विफ्ट 5 के लिए, निम्नलिखित तरीके सभी संभव हैं:
deviceToken.map({String(format: "%02x", $0)}).joined()
deviceToken.map({String(format: "%.2x", $0)}).joined()
deviceToken.reduce("", {$0 + String(format: "%02x", $1)})
deviceToken.reduce("", {$0 + String(format: "%.2x", $1)})
परीक्षण इस प्रकार है:
let deviceToken = (0..<32).reduce(Data(), {$0 + [$1]})
print(deviceToken.reduce("", {$0 + String(format: "%.2x", $1)}))
// Print content:
// 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
NSLog
, जो प्रिंट करता हैnewDeviceToken
?