String s ="[ABC_JJBB_DD]";

मुझे एप्लिकेशन डेटा से स्ट्रिंग मान मिल रहा है, मैं ग्रोवी में स्ट्रिंग में विशेष वर्ण [और] को कैसे हटा सकता हूं। का उपयोग करते हुए

s.removeAll('[','']
1
chandan 18 मार्च 2020, 11:17
2
s.substring(1, s.length()-1)
 – 
Aniket Sahrawat
18 मार्च 2020, 11:26

2 जवाब

ग्रोवी 3 के बाद से आप takeBetween का उपयोग कर सकते हैं, जिसमें अन्य तर्कों के अलावा स्टार्ट और एंड स्ट्रिंग के लिए एक है। उदा.

groovy:000> "[ABC_JJBB_DD]".takeBetween("[","]")
===> ABC_JJBB_DD
2
cfrick 18 मार्च 2020, 14:36
ऊह, यह अच्छा है!
 – 
tim_yates
18 मार्च 2020, 15:25
टेकबीच कूल है। क्या हम एक ही स्टेटमेंट में टेकबीच और टोकन (_) ले सकते हैं?
 – 
chandan
18 मार्च 2020, 19:48
आप "[1] [2]".tokenize()*.takeBetween("[","]") कर सकते हैं
 – 
cfrick
18 मार्च 2020, 19:59

जैसा कि अनिकेत कहता है, आप इसे जावा मार्ग से कर सकते हैं:

s.substring(1, s.length()-1)

या आप ग्रोवी मार्ग ले सकते हैं:

s[1..-2]

लेकिन आपको यह सुनिश्चित करना होगा कि s इन दोनों के साथ 1 वर्ण से अधिक लंबा है, अन्यथा आपको एक StringIndexOutOfBoundsException मिलेगा

यदि आप जाँच नहीं करना चाहते हैं, तो आप गूढ़ बातें कर सकते हैं जैसे

s.drop(1).reverse().drop(1).reverse()

जो काम करेगा, लेकिन धीमा होगा

या, यदि आप सभी [ और ] को हटाना चाहते हैं, तो आप कर सकते हैं

s.replaceAll(~/[\[\]]/, '')
1
tim_yates 18 मार्च 2020, 12:13