2012-02-05 16 views
10

मैं अनिवार्य रूप से ऊपर है, जब भी वहाँ है एक !, ., ?, :, ; (मैं क्या कर रहा हूं की खातिर) वाक्य के आधार पर एक स्ट्रिंग विभाजित करने के लिए है, इसलिए चाहते हैं के आधार पर स्ट्रिंग ।जावा - विभाजन कई सीमांकक

सरणी को विभाजित करने के लिए मैं इसे एकाधिक आइटमों के साथ कैसे प्राप्त करूं?

धन्यवाद!

उत्तर

30

String.split पर विभाजित करने के लिए एक regex लगता है, इसलिए केवल कर सकते हैं:

mystring.split("[!.?:;]"); 
6

स्ट्रिंग.split का तर्क एक रेगेक्स है, इसलिए आप उन पैटर्नों में से किसी एक से मेल खाने वाले पैटर्न को बना सकते हैं।

s.split("[.!:;?]"); 
7

Guava'sSplitter थोड़ा String.split() से more predictable है।

Iterable<String> results = Splitter.on(CharMatcher.anyOf("!.?:;")) 
    .trimResults() // only if you need it 
    .omitEmptyStrings() // only if you need it 
    .split(string); 

और फिर आप Iterables.toArray या Lists.newArrayList का उपयोग उत्पादन परिणाम आप इसे कितना पसंद रैप करने के लिए कर सकते हैं।

संबंधित मुद्दे