मैं एक स्ट्रिंग से एक शुरुआत और समाप्त होने के दोहरे उद्धरण (") ट्रिम करने के लिए करना चाहते हैं।
मैं ऐसा कैसे हासिल कर सकते हैं जावा में? धन्यवाद!मैं स्ट्रिंग से डबल कोट्स को शुरू और समाप्त कैसे कर सकता हूं?
उत्तर
आप इस के लिए ^\"|\"$
का एक पैटर्न के साथ String#replaceAll()
उपयोग कर सकते हैं।
जैसे
string = string.replaceAll("^\"|\"$", "");
नियमित के बारे में अधिक जानने के लिए लार एक्सप्रेशन, 0 oपर अल ओक है।
उसने कहा, यह थोड़ा सा गंध करता है कि आप एक सीएसवी पार्सर का आविष्कार करने की कोशिश कर रहे हैं। यदि ऐसा है, तो मैं मौजूदा पुस्तकालयों के लिए चारों ओर देखने का सुझाव दूंगा, जैसे कि OpenCSV।
आपको नहीं लगता कि यह दोहरी कोट्स की सभी घटनाओं को खाली स्ट्रिंग के साथ बदल देगा बल्कि पहले और आखिरी। – GuruKulki
मैं एक सीएसवी पार्सर नहीं बना रहा हूँ। मैं tinyfbclient का उपयोग कर एक फेसबुक ऐप बना रहा हूं और किसी कारण से यह मुझे दोहरे उद्धरणों को पीछे और समाप्त करने वाले उपयोगकर्ता का यूआईडी प्रदान करता है। – ufk
@ufk: यह एक जटिल regex नहीं है। आप अन्यथा 'स्ट्रिंग # इंडेक्सऑफ()', 'स्ट्रिंग # सबस्ट्रिंग()', विधियों आदि के समूह के साथ परेशानी करना चाहते हैं। यह केवल थोड़ा सा तेज़ है, लेकिन यह बहुत अधिक कोड है। @ जीके: उह, क्या आपने रेगेक्स को पढ़/समझ लिया है या यहां तक कि इसका परीक्षण भी किया है? – BalusC
खोज अनुक्रमित और वहाँ कोई रिक्त स्ट्रिंग डालें।
लेकिन बीच में उद्धरण के लिए देखें ... –
तो यह पहली अनुक्रमणिका और डबल qoute की अंतिम अनुक्रमणिका होना चाहिए। – GuruKulki
स्ट्रिंग से पहले चरित्र और अंतिम वर्ण निकालने के लिए, का उपयोग करें:
myString = myString.substring(1, myString.length()-1);
अमरूद का उपयोग करके आप अधिक सुंदर ढंग से दोहरे उद्धरण चिह्नों केवल शुरुआत और अंत में मौजूद हैं लिख सकते हैं CharMatcher.is('\"').trimFrom(mystring);
क्या केवल एक वर्ण को ट्रिम करना संभव है? उदाहरण के लिए यदि मेरी स्ट्रिंग दो सिंगल कोट्स के साथ समाप्त होती है, तो भी मैं केवल एक ही उद्धरण प्राप्त करना चाहता हूं। –
, एक सरल कोड के रूप में इस पूरी तरह से काम करेगा:
string = string.replace("\"", "");
Matcher m = Pattern.compile("^\"(.*)\"$").matcher(value);
String strUnquoted = value;
if (m.find()) {
strUnquoted = m.group(1);
}
private static String removeQuotesFromStartAndEndOfString(String inputStr) {
String result = inputStr;
int firstQuote = inputStr.indexOf('\"');
int lastQuote = result.lastIndexOf('\"');
int strLength = inputStr.length();
if (firstQuote == 0 && lastQuote == strLength - 1) {
result = result.substring(1, strLength - 1);
}
return result;
}
सबसे पहले, हम यह देखने के लिए जांचते हैं कि स्ट्रिंग को दोगुना उद्धृत किया गया है, और यदि ऐसा है, तो उन्हें हटा दें। यदि आप वास्तव में जानते हैं कि यह दोहरा उद्धृत है तो आप सशर्त छोड़ सकते हैं।
if (string.length() >= 2 && string.charAt(0) == '"' && string.charAt(string.length() - 1) == '"')
{
string = string.substring(1, string.length() - 1);
}
यह परिमाण के आदेशों द्वारा सबसे अधिक प्रचलित उत्तर है और यह भी निर्दिष्ट करता है कि उद्धरणों के वैकल्पिक या उपस्थिति के संबंध में क्या करना है। – entonio
StringUtils.strip()
साथ
:
StringUtils.strip(null, *) = null
StringUtils.strip("", *) = ""
StringUtils.strip("abc", null) = "abc"
StringUtils.strip(" abc", null) = "abc"
StringUtils.strip("abc ", null) = "abc"
StringUtils.strip(" abc ", null) = "abc"
StringUtils.strip(" abcyx", "xyz") = " abc"
तो,
final String SchrodingersQuotedString = "may or may not be quoted";
StringUtils.strip(SchrodingersQuotedString, "\""); //quoted no more
इस विधि दोनों उद्धृत और गैर उद्धृत तार के साथ के रूप में मेरे उदाहरण में दिखाया गया काम करता है। केवल नकारात्मकता यह है कि यह सख्ती से मिलान उद्धरणों की तलाश नहीं करेगा, केवल उद्धरण वर्णों का अग्रणी और पिछला भाग (यानी "partially
और "fully"
उद्धृत तारों के बीच कोई भेद नहीं)।
स्ट्रिंग की शुरुआत और अंत से डबल कोट्स को पट्टी करने के लिए यह सबसे अच्छा तरीका है।
String result = input_str.replaceAll("^\"+|\"+$", "");
आप भी सिंगल कोट्स को दूर करने की जरूरत है:
someString.replace (/(^")|("$)/g, '')
हो सकता है कि एकल उद्धरण भी प्रतिस्थापित करें (/ (^ \ "| \ ') | (\" | \' $)/g, ""); – bob
शुरू और जावा में एक स्ट्रिंग के अंत से एक या अधिक दोहरे उद्धरण चिह्नों को निकालने के लिए आप एक regex आधारित समाधान का उपयोग करने की जरूरत है:
String result = input_str.replaceAll("^[\"']+|[\"']+$", "");
नोट: अपने स्ट्रिंग के अंदर "
हो, तो यह दृष्टिकोण मुद्दों को जन्म दे सकता है (उदाहरण के लिए"Name": "John"
=>Name": "John
)।
एक Java demo here देखें:
String input_str = "\"'some string'\"";
String result = input_str.replaceAll("^[\"']+|[\"']+$", "");
System.out.println(result); // => some string
s.stripPrefix("\"").stripSuffix("\"")
यह है कि क्या स्ट्रिंग है की परवाह किए बिना काम करता है या शुरू और/या अंत में उद्धरण नहीं है।
संपादित करें: माफ करना, स्काला केवल
- 1. मैं चींटी में डबल-कोट्स से कैसे बच सकता हूं?
- 2. सी # स्ट्रिंग। डबल कोट्स और लिटल्स को बदलें
- 3. मैं वीबीए में एक स्ट्रिंग में डबल कोट्स कैसे डालूं?
- 4. एसक्यूएल तैयार कथन में मैं सिंगल और डबल कोट्स से कैसे बच सकता हूं?
- 5. मैं Java3D को तेज़ी से कैसे शुरू कर सकता हूं?
- 6. ग्रहण - डबल कोट्स
- 7. मैं एक नई प्रक्रिया कैसे शुरू कर सकता हूं और इसे समाप्त होने तक प्रतीक्षा कर सकता हूं?
- 8. बनाम 2010 - डबल कोट्स
- 9. नियमित अभिव्यक्ति में डबल कोट्स
- 10. कुकी सर्वर को डबल कोट्स
- 11. पावरहेल डबल कोट्स
- 12. परिवर्तित करने कॉमा डबल कोट्स अल्पविराम से अलग स्ट्रिंग
- 13. जावास्क्रिप्ट एकल और डबल कोट्स में वर्णों से बचने
- 14. मैं स्मार्टगिट से कमांड लाइन कैसे शुरू कर सकता हूं?
- 15. perl डबल कोट्स
- 16. मैं वाईएएमएल में एकल और डबल कोट्स दोनों के साथ एक स्ट्रिंग कैसे घोषित करूं?
- 17. Regex.Matchches सी # डबल कोट्स
- 18. मैं प्रतिक्रिया कैसे समाप्त कर सकता हूं और HTTP कोड 404 वापस भेज सकता हूं?
- 19. jquery का उपयोग कर एकल कोट्स में सभी डबल कोट्स को कैसे प्रतिस्थापित करें?
- 20. मैं लू थ्रेड को साफ तरीके से कैसे समाप्त कर सकता हूं?
- 21. मैं डब्ल्यूपीएफ में लेआउट को कैसे निलंबित और फिर से शुरू कर सकता हूं?
- 22. मैं रेल कंसोल कैसे शुरू कर सकता हूं और परीक्षण डेटाबेस का विशेष रूप से उपयोग कैसे कर सकता हूं?
- 23. वीबीस्क्रिप्ट तर्क में डबल कोट्स
- 24. grep पैटर्न एकल और डबल कोट्स
- 25. विम में, मैं डबल कोट्स के भीतर सब कुछ कैसे हटा सकता हूं?
- 26. क्या मैं एप्लिकेशन # ऑनक्रेट() से सेवा शुरू कर सकता हूं?
- 27. mailto में डबल कोट्स को संभालना:
- 28. सी ++ प्रोग्राम समाप्त किए बिना मैं ncurses कैसे समाप्त कर सकता हूं?
- 29. मैं स्ट्रिंग को कैसे बना सकता हूं?
- 30. मैं जूमला में कोड कैसे शुरू कर सकता हूं और लिख सकता हूं?
स्ट्रिंग पहले से ही इसके चारों ओर उद्धरण के लिए जाना जाता है, या समस्या का उद्धरण भाग के लिए जाँच कर रहा है है? –