की तरह एक फ़ाइल नाम को देखते हुए की एक्सटेंशन निकाल दें। मैं जावा में इसे कैसे बना सकता हूं? धन्यवाद!एक फ़ाइल
एक फ़ाइल
उत्तर
कुछ
if (name.indexOf(".") > 0)
name = name.substring(0, name.lastIndexOf("."));
सूचकांक की जांच की तरह "में" ".profile
" की तरह छिपी हुई फ़ाइलें मोड़ से बचा जाता है, और lastIndexOf()
cute.kitty.jpg
जैसे नामों का ख्याल रखता है।
String result = filename.substring(0, filename.lastIndexOf("."))
यदि फ़ाइल नाम substring()
कॉल करने से पहले एक .
है देखने के लिए जाँच करें।
String name = filename.lastIndexOf('.') > filename.lastIndexOf(File.separatorChar) ?
filename.substring(0, filename.lastIndexOf('.'))
: filename;
तुलना की जाँच करता है फ़ाइल नाम अपने आप में एक .
जिसमें, अन्यथा स्ट्रिंग में कोई बदलाव नहीं दिया जाता है।
myString = myString.replaceAll("\\.\\w+", "");
उपयोग Apache Commons IO, FilenameUtils.getBaseName(String filename)
या removeExtension(String filename)
, यदि आप पथ बहुत जरूरत है।
यहाँ एक से थोड़ा अधिक मजबूत संस्करण है:
public static String stripExtension(final String s)
{
return s != null && s.lastIndexOf(".") > 0 ? s.substring(0, s.lastIndexOf(".")) : s;
}
सुन्दरता संभालती null
, ऐसे मामलों में जहां कुछ भी नहीं है कि एक विस्तार की तरह दिखता है और फ़ाइलों है कि एक .
के साथ शुरू छेड़छाड़ नहीं करता है, यह भी .kitty.jpg
संभालती समस्या भी है।
यह प्रत्यय वास्तव में एक विस्तार नहीं है, तो प्रत्यय वास्तव में एक विस्तार नहीं है, तो कुछ .
अलग होने के बाद आपको कुछ जांच जोड़ने की आवश्यकता है ताकि पीछे की ओर भाग वास्तव में एक एक्सटेंशन है जिसे आप पहचानते हैं।
Pattern suffix = Pattern.compile("\\.\\p{Alnum}+$");
Matcher m = suffix.matcher(filename);
String clearFilename = m.replaceAll("");
इस समाधान का समस्या यह है कि, अपनी आवश्यकताओं के आधार पर, आप filename.tar.gz की तरह रचना विस्तार का समर्थन करने के लिए, यह बढ़ाने की जरूरत है, filename.tar.bz2
[] की
और पिछले
याद रखें कि यदि आपको अक्सर इस फ़ंक्शन को लागू करने की आवश्यकता होती है, तो संकलित रेगेक्स (Pattern.compile) का उपयोग करना बेहतर होता है। यदि आप String.replace और positioning का उपयोग करते हैं, तो यह प्रत्येक निष्पादन को संसाधित करेगा और अधिक CPU समय का उपभोग करेगा। – apast
यहां इस तरह के उत्तर की तलाश में आया, लेकिन जितना मैं रीडएक्स को पठनीयता के लिए पसंद करता हूं 'path.substring (0, path.lastIndexOf ('। ')) 'Pattern.matcher की तुलना में तीव्रता के क्रम के रूप में सामने आता है (पथ) .replaceFirst ("") ', यहां तक कि एक precompiled पैटर्न के साथ। – MithrilTuxedo
- 1. फ़ाइल कब एक फ़ाइल है?
- 2. एक फ़ाइल
- 3. एक फ़ाइल
- 4. एक फ़ाइल
- 5. एक फ़ाइल
- 6. एक फ़ाइल
- 7. एक फ़ाइल
- 8. एक फ़ाइल
- 9. एक फ़ाइल
- 10. स्कैला फ़ाइल से एक जार फ़ाइल बनाना
- 11. एक अपलोड की गई फ़ाइल को फ़ाइल
- 12. बैच फ़ाइल से एक खाली फ़ाइल बनाना
- 13. Django: एक फ़ाइल फ़ाइल को फ़ाइलफिल्ड
- 14. दो फ़ाइल डिस्क्रिप्टर एक ही फ़ाइल में
- 15. ए। डिप्लॉय फ़ाइल एक एक्सएमएल फ़ाइल
- 16. एक .js फ़ाइल में एक .js फ़ाइल सहित
- 17. एक क्रियालेख फ़ाइल से एक एसडब्ल्यूएफ फ़ाइल कैसे उत्पन्न करें?
- 18. एक ग्रहण फ़ाइल को एक चेकस्टाइल फ़ाइल में परिवर्तित करना
- 19. एक .jar फ़ाइल के अंदर एक फ़ाइल को एक्सेस करना
- 20. एक HTML फ़ाइल में एक php फ़ाइल का आउटपुट सहेजें
- 21. tsql: एक csv फ़ाइल
- 22. एक .pth फ़ाइल
- 23. एक बाइनरी फ़ाइल
- 24. एक ऑटोलोडेड लाइब्रेरी फ़ाइल
- 25. रूबी - एक ज़िप फ़ाइल
- 26. एक सीएसवी फ़ाइल
- 27. कैसे एक लॉग फ़ाइल
- 28. एक बड़ी बाइनरी फ़ाइल
- 29. एक एफएलए फ़ाइल
- 30. एक कॉन्फ़िगर फ़ाइल
हालांकि, यह भी [रखना] होगा (http://ideone.com/NS2iH) '.kitty.jpg',' .jpg' निकाले बिना। यह वांछित हो सकता है या नहीं भी हो सकता है। –
आप 'name.indexOf ("। ")> 0' के बजाय' name.lastIndexOf ("।")> 0' कर सकते हैं और यह '.kpg.jpg' से' .jpg' को हटाएगा, जबकि इसे '.kitty' –