जावा स्ट्रिंग से स्ट्रिप लीडिंग और ट्रेलिंग स्पेस


278

क्या जावा स्ट्रिंग से किसी भी अग्रणी या अनुगामी रिक्त स्थान को छीनने की एक सुविधा विधि है?

कुछ इस तरह:

String myString = "  keep this  ";
String stripppedString = myString.strip();
System.out.println("no spaces:" + strippedString);

परिणाम:

no spaces:keep this

myString.replace(" ","") कीप और इसके बीच की जगह को बदल देगा।


7
यह दुर्भाग्यपूर्ण है, लेकिन इसका मतलब है कि यहां जवाब लोगों के लिए उपयोगी थे। मैंने उस कारण से ही उत्थान किया।
एलेक्स डी

11
जबकि यह एक डुप्लिकेट हो सकता है, यह एक बेहतर प्रस्तुत प्रश्न है। यदि कुछ भी हो, तो दूसरे को इस के डुप्लिकेट के रूप में बंद किया जाना चाहिए।
thecoshman

1
मैंने डुप्लिकेट को स्विच किया क्योंकि यह Q & A में अधिक दृश्य और पसंदीदा है, और अन्य Q & A वास्तव में डिबगिंग प्रश्न है।
रेडियोडफ

1
JDK / 11 एपीआई से समाधान के साथ एक उत्तर दिया - String.stripयह करने के लिए।
नमन

जवाबों:


601

आप ट्रिम () विधि का प्रयास कर सकते हैं।

String newString = oldString.trim();

Javadocs पर एक नज़र डालें


1
जावा 11 के String.strip () के लिए एक पिछड़े-संगत प्रतिस्थापन के रूप में काम करता है। सूक्ष्म अंतरों का पता लगाने के लिए मेरे पास समय नहीं है।
योशिय्याह योडर

80

String#trim()विधि का उपयोग करें या String allRemoved = myString.replaceAll("^\\s+|\\s+$", "")दोनों छोर को ट्रिम करने के लिए।

बाएं ट्रिम के लिए:

String leftRemoved = myString.replaceAll("^\\s+", "");

सही ट्रिम के लिए:

String rightRemoved = myString.replaceAll("\\s+$", "");

3
यह स्ट्रिंग में कितने प्रमुख / अनुगामी रिक्त स्थान हैं, यह बताने में सक्षम होने का अतिरिक्त लाभ है।
बलोएज कजप्प


18

ट्रिम () आपकी पसंद है, लेकिन यदि आप replaceविधि का उपयोग करना चाहते हैं - जो अधिक लचीले हो सकते हैं, तो आप निम्नलिखित की कोशिश कर सकते हैं:

String stripppedString = myString.replaceAll("(^ )|( $)", "");

यह सब क्या प्रतिस्थापित करता है? रिक्त स्थान और newlines शायद?
कोई व्यक्ति

मैं केवल अनुगामी रिक्त स्थान को हटाने के लिए एक उपाय खोज रहा था लेकिन प्रमुख स्थान नहीं। मैंने इस्तेमाल किया: str.replaceAll ("\\ s * $", "") धन्यवाद!
लिसा पी।

4

Java-11 और इसके बाद के संस्करण में, आप String.stripस्ट्रिंग को वापस करने के लिए API का उपयोग कर सकते हैं, जिसका मूल्य यह स्ट्रिंग है, जिसमें सभी प्रमुख और अनुगामी व्हाट्सएप हटाए गए हैं। एक ही पढ़ने के लिए javadoc:

/**
 * Returns a string whose value is this string, with all leading
 * and trailing {@link Character#isWhitespace(int) white space}
 * removed.
 * <p>
 * If this {@code String} object represents an empty string,
 * or if all code points in this string are
 * {@link Character#isWhitespace(int) white space}, then an empty string
 * is returned.
 * <p>
 * Otherwise, returns a substring of this string beginning with the first
 * code point that is not a {@link Character#isWhitespace(int) white space}
 * up to and including the last code point that is not a
 * {@link Character#isWhitespace(int) white space}.
 * <p>
 * This method may be used to strip
 * {@link Character#isWhitespace(int) white space} from
 * the beginning and end of a string.
 *
 * @return  a string whose value is this string, with all leading
 *          and trailing white space removed
 *
 * @see Character#isWhitespace(int)
 *
 * @since 11
 */
public String strip()

इनके लिए नमूना मामले निम्न हो सकते हैं: -

System.out.println("  leading".strip()); // prints "leading"
System.out.println("trailing  ".strip()); // prints "trailing"
System.out.println("  keep this  ".strip()); // prints "keep this"

पुनश्च : यहाँ से टिप्पणियों के आधार पर उत्तर का पलायन - stackoverflow.com/questions/3796121/…
नमन


0

विशिष्ट चार ट्रिम करने के लिए, आप उपयोग कर सकते हैं:

String s = s.replaceAll("^(,|\\s)*|(,|\\s)*$", "")

यहां स्ट्रिप लीडिंग और ट्रेलिंग स्पेस और अल्पविराम होगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.