2012-05-28 14 views
5

क्या स्ट्रिंग के अंतिम सीमांकित सबस्ट्रिंग को पाने का कोई आसान तरीका है?स्ट्रिंग पिछली अनुक्रमणिका

String original = "/1/6/P_55/T_140"; 

इस उदाहरण में, जिसके परिणामस्वरूप स्ट्रिंग होगा "P_55/T_140"

मैं इस स्ट्रिंग की शुरुआत में फॉरवर्ड स्लैश के सूचकांक प्राप्त करना चाहते हैं (/)

मैं जानता हूँ कि String.lastIndexOf() दो बार बुला होगा मदद। लेकिन एक क्लीनर दृष्टिकोण की तलाश है जो सामान्य है। शायद किसी भी एन

उत्तर

8

लेकिन एक क्लीनर दृष्टिकोण की तलाश जो सामान्य है। शायद किसी भी एन

एक पाश में String.lastIndexOf(int,int) कॉलिंग के लिए काफी कुशल, और यकीनन बहुत साफ होने जा रहा है:

int pos = str.length(); 
    for (int i = 0; i < n; i++) { 
     pos = str.lastIndexOf('/', pos - 1); 
    } 
    String out = str.substring(pos + 1); 

यह आसानी से एक सहायक समारोह लेने str, '/' और n में बदल सकता है , और out लौट रहा है।

+0

के रूप में देता है यह भी एक पूरी तरह से तेज़ समाधान भी होगा। –

0

जहां मीडिया फ़ाइल

/भंडारण रहता फ़ोल्डर का नाम प्राप्त करने के लिए/नकल करते/0/WhatsApp/मीडिया/WhatsApp वीडियो/VID-20,170,812-WA0000.mp4

नीचे कोड का उपयोग

String folderName = filePath.substring(filePath.lastIndexOf('/',filePath.lastIndexOf('/')-1),filePath.lastIndexOf('/')); 

फ़ोल्डर नाम 'व्हाट्सएप वीडियो'