बस उपयुक्त विधि का उपयोग करें: 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