बस उपयुक्त विधि का उपयोग करें: String#split()।
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
ध्यान दें कि यह एक नियमित अभिव्यक्ति लेता है , इसलिए यदि आवश्यक हो तो विशेष वर्णों से बचने के लिए याद रखें ।
वहाँ विशेष अर्थ के साथ 12 अक्षर हैं: बैकस्लैश \, कैरट ^, डॉलर चिह्न $, अवधि या डॉट ., ऊर्ध्वाधर बार या पाइप प्रतीक |, प्रश्न चिह्न ?, तारांकन या स्टार *, धन चिह्न +, आरंभिक कोष्ठक (, समापन कोष्ठक ), और उद्घाटन वर्ग ब्रैकेट [, उद्घाटन घुंघराले ब्रेस {, इन विशेष वर्णों को अक्सर "मेटाचैटर्स" कहा जाता है।
इसलिए, यदि आप ईजी पीरियड / डॉट पर विभाजित करना चाहते हैं, .जिसका अर्थ है " रेगीज़ में कोई भी वर्ण ", तो या तो व्यक्तिगत विशेष वर्ण से बचने के लिए बैकस्लैश\ का split("\\.")उपयोग करें , या ऐसा करने के लिए शाब्दिक चरित्र (एस) का प्रतिनिधित्व करने के लिए चरित्र वर्ग[] का split("[.]")उपयोग करें , या करने के Pattern#quote()लिए उपयोग करें पूरे स्ट्रिंग को इस तरह से बाहर निकालें split(Pattern.quote("."))।
String[] parts = string.split(Pattern.quote(".")); // Split on period.
पहले से परीक्षण करने के लिए यदि स्ट्रिंग में कुछ वर्ण हैं, तो बस उपयोग करें String#contains()।
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
ध्यान दें, यह एक नियमित अभिव्यक्ति नहीं लेता है। उसके लिए, String#matches()इसके बजाय का उपयोग करें ।
यदि आप परिणामी भागों में विभाजित चरित्र को बनाए रखना चाहते हैं, तो सकारात्मक रूप का उपयोग करें । यदि आप चाहते हैं कि विभाजन वर्ण बाएं हाथ की ओर समाप्त हो, ?<=तो पैटर्न पर उपसर्ग समूह द्वारा सकारात्मक लुकबाइंड का उपयोग करें ।
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
यदि आप दाएं हाथ की तरफ समाप्त होने के लिए विभाजित चरित्र चाहते हैं, तो ?=पैटर्न पर उपसर्ग समूह द्वारा सकारात्मक लुकहेड का उपयोग करें ।
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
यदि आप परिणामी भागों की संख्या को सीमित करना चाहते हैं, तो आप वांछित संख्या को 2 तर्क split()पद्धति के रूप में आपूर्ति कर सकते हैं ।
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42