क्यों बस नहीं:
int plusIndex = s.indexOf("+");
if (plusIndex != -1) {
String before = s.substring(0, plusIndex);
// Use before
}
यह वास्तव में स्पष्ट नहीं है कि आपका मूल संस्करण क्यों काम नहीं करता था, लेकिन फिर आपने यह नहीं कहा कि वास्तव में क्या हुआ। आप नियमित अभिव्यक्ति का उपयोग कर नहीं विभाजित करने के लिए चाहते हैं, मैं व्यक्तिगत रूप से Guava का उपयोग करेंगे:
Iterable<String> bits = Splitter.on('+').split(s);
String firstPart = Iterables.getFirst(bits, "");
आप split
उपयोग करने के लिए (या तो निर्मित संस्करण या अमरूद) आप की जरूरत नहीं है जा रहे हैं जांचें कि इसमें +
पहले है - अगर ऐसा नहीं होता है तो वैसे भी एक परिणाम होगा। जाहिर है वहाँ दक्षता का सवाल है, लेकिन यह सरल कोड है:
// Calling split unconditionally
String[] parts = s.split("\\+");
s = parts[0];
ध्यान दें कि String[] parts
लेखन String parts[]
से अधिक पसंद है - यह बहुत अधिक मुहावरेदार जावा कोड है।
स्रोत
2012-04-08 06:17:32
कृपया http://tinyurl.com/so-hints पढ़ें - यह कहना यह कह रही है कि तुम क्या उम्मीद के बिना अपेक्षित परिणाम नहीं दे करता है बेकार है और आप क्या वास्तव में मिला है। –