/ / कैन यू जावा रिटेल इन ए अर्रे - जावा, अरेज, रेगेक्स, स्ट्रिंग

क्या आप जावा रिटवाल को ऐरे - जावा, एरे, रेगेक्स, स्ट्रिंग में रख सकते हैं

मैं स्ट्रिंग वस्तुओं की एक सरणी के माध्यम से स्कैनिंग कर रहा हूं, प्रत्येक स्ट्रिंग ऑब्जेक्ट को एक रेगेक्स में तोड़ दिया जाएगा।

जब मैं एन्हांस्ड लूप के माध्यम से जा रहा हूं, तो मैं सोच रहा हूं कि क्या रिटेल को एक सरणी में रखना संभव है?

उदाहरण के लिए यदि मेरे पास स्ट्रिंग regex = नया स्ट्रिंग [3] है;

जहाँ regex [0] = "EVEN_BIN_NUM (0 | 1) * 0"

एन्हांस्ड लूप मेरे स्ट्रिंग ऑब्जेक्ट को EVEN_BIN_NUM और (0 | 1) * 0 में तोड़ सकता है

मैं एक सरणी में EVEN_BIN_NUM डालना चाहता हूं, और (0 | 1) * 0 किसी अन्य सरणी में। यहां मेरे पास कोड है जो स्ट्रिंग ऑब्जेक्ट्स के साथ स्ट्रिंग सरणी के माध्यम से स्कैन करता है

    /*
* Run through each String object and appropriately place them in the kind,
* and explicit.
*/
for (int j = 0; j < regex.length; j++)
{
for (String retval: regex[j].split(" ", 2))
{
System.out.println(retval);
}
}

Regex [0]। Split ("", 2) के लिए मुझे EVEN_BIN_NUM मिलता है और (0 | 1) * 0 अलग से लौटाया जाता है।

वैकल्पिक रूप से, यदि आप इसे बेहतर तरीके से तोड़ना जानते हैं, तो मुझे बताएं: EVEN_BIN_NUM (0 | 1) * 0 |

ODD_BIN_NUM (0 | 1) * 1

पीईटी (बिल्ली | कुत्ता)

बड़े अक्षरों में भागों को "तरह" सरणी में रखा जाना है, और बाकी को दूसरे सरणी में रखा जाना है।

तो तरह के सरणी में तीन तार होंगे, और अन्य सरणी में तीन तार होंगे।

उम्मीद है कि यह isn "टी बहुत भ्रामक है ....

उत्तर:

जवाब के लिए 0 № 1

अपनी जानकारी को संग्रहीत करने के लिए मैप ऑब्जेक्ट का उपयोग करना एक अच्छा विचार हो सकता है, हालांकि, यदि आप एक सरणी के रूप में अपने विश्लेषण को वापस करना चाहते हैं, तो आप ऐरे की एक सरणी लौटा सकते हैं और निम्न कार्य कर सकते हैं।

String[] regex = {"EVEN_BIN_NUM (0|1)*0", "ODD_BIN_NUM (0|1)*1", "PET (cat|dog)"} ;
String[][] split = new String[regex.length][];

for(int i = 0; i < regex.length; i++) {
split[i] = regex[i].split(" ", 2);

}

फिर आप निम्नानुसार डेटा तक पहुंच सकते हैं

String firstProperty = split[0][0];   //EVEN_BIN_NUM
String firstRegex = split[0][1];      //(0|1)*0

String secondProperty = split[1][0];  //ODD_BIN_NUM
String secondRegex = split[1][1];     //(0|1)*1

आदि।

या एक मानचित्र का उपयोग कर:

Map<String, Pattern> map = new HashMap<>();

for(int i = 0; i < regex.length; i++) {
String[] splitLine = regex[i].split(" ", 2);
map.put(splitLine[0], Pattern.compile(splitLine[1]));

}

इस तरह आपके गुण सीधे आपके पैटर्न्स के नक्शे पर आ जाएंगे।

उदाहरण के लिए:

Pattern petPattern = map.get("PET");