यदि स्ट्रिंग निम्न में से किसी भी प्रारूप में है तो मैं एक स्ट्रिंग में व्हाइटस्पेस डालना चाहता हूं:
(A) => (A)
(A)B => (A) B
A(B) => A (B)
A(B)C => A (B) C
AB(C) => AB (C)
पहले ही, आपका बहुत धन्यवाद।
संपादित करें: प्रतिस्थापन केवल तभी किया जाना चाहिए जब मेल खाने वाले कोष्ठक हों।
AB(C => AB(C should remain as is.
2 जवाब
यह ठीक वैसा नहीं है जैसा आप करते हैं, लेकिन लगभग। यह कोष्ठकों से घिरी हर चीज के पहले और बाद में रिक्त स्थान जोड़ देगा। किसी भी मौजूदा स्थान को एक स्थान से बदल दिया जाएगा। इसके अलावा अंत में अनुगामी रिक्त स्थान हटा दिए जाते हैं।
टिप्पणी: मैंने केवल पैटर्न की जांच की है (रास्ते में ग्रहण में), कुछ मामूली वाक्यविन्यास त्रुटियां हो सकती हैं।
String addParentheses(String text) {
Pattern ps = Pattern.compile("(\\s)*(\\([^\\)]*\\))(\\s)*"); //Find everything surrounded by (), 'eating' the spaces before and after as well.
Matcher m=ps.matcher(text);
StringBuffer output = new StringBuffer();
while (m.find()) {
m.appendReplacement(output, " $1 "); //Surround with spaces, replacing any existing one
}
m.appendTail(output);
return output.toString().trim(); //Remove trailing spaces
}
String s = "AB(C)"; // This is your input
s.replaceAll("(", " (");
s.replaceAll(")", ") ");
s = s.trim();
(A)
के आसपास रिक्त स्थान भी जोड़ देगा, जो कि ओपी नहीं चाहता है।
trim()
इसे संभाल लेंगे। अपवाद के बारे में: इसे संकलित करने का प्रयास करें और आप देखेंगे।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।