2012-04-08 20 views
27

मैं अपने स्ट्रिंग है अगर एक + चरित्र के कोडकैसे करता है, तो स्ट्रिंग '+' चरित्र

s= "ddjdjdj+kfkfkf"; 

if(s.contains ("\\+"){ 
String parts[] = s.split("\\+); 
    s= parts[0]; // i want to strip part after + 

} 

निम्नलिखित की कोशिश की जाँच करना चाहते हैं की जाँच करने के, लेकिन यह उम्मीद result.Any विचार दे doesnot?

+2

कृपया http://tinyurl.com/so-hints पढ़ें - यह कहना यह कह रही है कि तुम क्या उम्मीद के बिना अपेक्षित परिणाम नहीं दे करता है बेकार है और आप क्या वास्तव में मिला है। –

उत्तर

61

आप इस के बजाय की जरूरत है:

if(s.contains("+")) 

contains()String की विधि वर्ग एक पैरामीटर के रूप नियमित अभिव्यक्ति नहीं ले करता है, यह सामान्य पाठ लेता है।


संपादित करें:

String s = "ddjdjdj+kfkfkf"; 

if(s.contains("+")) 
{ 
    String parts[] = s.split("\\+"); 
    System.out.print(parts[0]); 
} 

उत्पादन:

ddjdjdj 
+0

जो प्लस से पहले भाग नहीं लेता है, वही है जो ओपी की तरह लगता है वास्तव में चाहता है। –

+0

जब मैंने अपनी टिप्पणी पोस्ट की तो आपका उत्तर * केवल * 'String.contains' पर कॉल था। –

+0

(फिर से सवाल फिर से देखा, मैं इस तथ्य को याद कर दूंगा कि वह पहले से ही कॉल कर रहा था। यह बहुत जल्दी है। दोह। लेकिन यह इंगित करते हुए कि बाकी कोड पहले से ही ठीक था, उपयोगी होगा ...) –

9

क्यों बस नहीं:

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[] से अधिक पसंद है - यह बहुत अधिक मुहावरेदार जावा कोड है।

+0

अद्भुत समाधान आपको बहुत - बहुत धन्यवाद! –

0

[+] सरल है

String s = "ddjdjdj+kfkfkf"; 

    if(s.contains ("+")) 
    { 
     String parts[] = s.split("[+]"); 
     s = parts[0]; // i want to strip part after + 
    } 
    System.out.println(s); 
संबंधित मुद्दे