2012-10-05 8 views
5

अंत में हटाने के बिना जावा में एक स्ट्रिंग की शुरुआत से मैं सफेद-स्थान को कैसे हटा सकता हूं?मैं स्ट्रिंग की शुरुआत से सफेद-स्थान को कैसे हटा सकता हूं?

यदि मान:

String temp = " hi " 

तो कैसे मैं केवल प्रमुख सफेद स्थान हटा सकते हैं तो यह इस तरह दिखता है:

String temp = "hi " 

वर्तमान कार्यान्वयन मैं लूप करने के लिए है, पहले अक्षर की जांच करना और एक सबस्ट्रिंग बनाना जब तक कि पहले गैर-व्हाइटस्पेस मान तक पहुंच न जाए।

धन्यवाद!

उत्तर

7

आप इस्तेमाल कर सकते हैं:

temp = temp.replaceFirst("^\\s*", "") 
+1

यह स्ट्रिंग्स के साथ काम नहीं करेगा जो पहले से ही व्हाइटस्पेस नहीं है। यह 'temp.replaceFirst ("^\\ s * "," ") होना चाहिए; 'ताकि'^'स्ट्रिंग की शुरुआत से मेल खाता हो। – Brian

+0

ओपी को यह सुनिश्चित करने की भी आवश्यकता होगी कि स्ट्रिंग व्हाइटस्पेस वर्णों से शुरू हो। –

+1

'^" केवल 'String.replaceAll' का उपयोग करते समय आवश्यक है। हालांकि यह ठीक काम करेगा, 'String.replaceFirst' के लिए इसकी आवश्यकता नहीं है – Reimeus

5

आप इस्तेमाल कर सकते हैं कॉमन्स-लैंग StringUtils stripStart विधि।

यदि आप शून्य पास करते हैं तो यह स्वचालित रूप से रिक्त स्थान को ट्रिम कर देगा।

StringUtils.stripStart(temp, null); 
1

शायद सुझाव के कार्यान्वयन के करीब कॉमन्स-लैंग StringUtils.stripStart() विधि:

public static String trimFront(String input) { 
    if (input == null) return input; 
    for (int i = 0; i < input.length(); i++) { 
     if (!Character.isWhitespace(input.charAt(i))) 
      return input.substring(i); 
    } 
    return ""; 
} 
0

Blatantly java2s से नकल:

text = text.replaceAll("^\\s+", ""); 

... और का उपयोग कर संशोधित @Reimus का उत्तर:

text = text.replaceFirst("^\\s+", ""); 

मुझे सबसे कुशल विधि का यकीन नहीं है; fwiw, मैं @Reimus के मूल के साथ चला गया।

संबंधित मुद्दे