मैं स्विफ्ट में एक सरल स्ट्रिंग टोकनाइज़र बना रहा हूं जैसे कि मैं जावा में ... लेकिन यह वास्तव में मेरे लिए काम नहीं कर रहा है।कॉमा और लाइन डिलीमीटर के साथ टोकननाइज़िंग स्ट्रिंग कैसे करें
"^" के साथ सीमित मेरे डेटा स्रोत में प्रत्येक पंक्ति का अंत और डेटा को अल्पविराम से अलग किया जाता है।
उदाहरण के लिए: "स्ट्रिंग 1, स्ट्रिंग 2, स्ट्रिंग 3, ^, स्ट्रिंग 1, स्ट्रिंग 2, स्ट्रिंग 3, ^"
यह मैं जावा में क्या करेंगे ... (मैं केवल चाहते हैं डेटा की प्रत्येक पंक्ति में पहले दो तार)
String delimeter = "^";
StringTokenizer tokenizedString = new StringTokenizer(responseString,delimeter);
String [] stringArray = new String [tokenizedString.countTokens()];
StringTokenizer tokenizedAgain;
String str1;
String str2;
String token;
for(int i =0; i< stringArray.length; i ++)
{
token = tokenizedString.nextToken();
tokenizedAgain = new StringTokenizer(token, ",");
tokenizedAgain.nextToken();
str1 = tokenizedAgain.nextToken();
str2 = tokenizedAgain.nextToken();
}
कोई सही दिशा है कि वास्तव में सहायक होगा में मुझे बात कर सकता है।
मैं इस देखा है: Swift: Split a String into an array
और इस: http://www.swift-studies.com/blog/2014/6/23/a-swift-tokenizer
लेकिन मैं वास्तव में स्विफ्ट में स्ट्रिंग Tokenizing पर अन्य संसाधनों पा सकते हैं। धन्यवाद!
अरे धन्यवाद! मैंने आपके कोड को आजमाया है कि इसके पीछे तर्क बहुत अंतर्दृष्टिपूर्ण है ... मैंने कभी भी 2 डी सरणी बनाने का विचार नहीं किया होगा ... लेकिन जब मुझे 2 डी सरणी से मान मिलते हैं ... "println (टोकन [1] [0 ]) "रेखा 1. है। 0 0 .. लेकिन पहले"^"डेलीमीटर के लिए इंगित करता है ... और सरणी सोचती है कि यह नई पंक्ति में पहली प्रविष्टि है ... और यह कंसोल में भी खाली प्रिंट करता है। आदर्श रूप में मैं "स्ट्रिंग 1" (लाइन 2 के) प्रिंट करने के लिए "println (टोकन [1] [0])" चाहता हूं लेकिन यह कंसोल में खाली है। लेकिन वैसे भी ... फिर से धन्यवाद। बहुत सराहना की!!! – stepheaw