2013-01-01 10 views
7

मैं डार्ट के लिए बहुत नया हूं और मूल पुस्तकालयों की कुछ समझ प्राप्त करने की कोशिश कर रहा हूं। तारों के लिए, एक ट्रिम() फ़ंक्शन प्रदान किया जाता है। यह अच्छा है, लेकिन क्या शुरुआत में या केवल स्ट्रिंग के अंत में व्हाइटसाइट को ट्रिम करने के कोई स्पष्ट तरीके नहीं हैं? मैं उन्हें नहीं ढूंढ सकता.धन्यवाद।प्रारंभ या अंत से डार्ट स्ट्रिंग्स में व्हाइटस्पेस को ट्रिम करना

+2

मैं मानता हूं कि यह एक अजीब अंतर है। मैंने थोड़ी देर पहले एक ही चीज़ के बारे में शिकायत की थी। वर्तमान में यह अगले मील का पत्थर तय किया जाएगा। कृपया इस बग को तारांकित करें: http://code.google.com/p/dart/issues/detail?id=5589&q=ltrim&colspec=ID%20Type%20Status%20Priority%20Area%20Milestone%20Owner%20 सारांश –

+0

यह समस्या ठीक है। –

उत्तर

4

केवल अग्रणी या पीछे वाले व्हाइटस्पेस को ट्रिम करने के लिए कोई विशिष्ट तरीका नहीं है।

/// trims leading whitespace 
String ltrim(String str) { 
    return str.replaceFirst(new RegExp(r"^\s+"), ""); 
} 

/// trims trailing whitespace 
String rtrim(String str) { 
    return str.replaceFirst(new RegExp(r"\s+$"), ""); 
} 
+0

मैं यह भी मानता हूं कि ये केवल स्ट्रिंग विधियां होनी चाहिए। कृपया ऊपर से जुड़ी बग स्टार करें। –

1

पुस्तकालय MoreDart कुछ अमरूद प्रेरित सहायकों है कि आप कुशलतापूर्वक शुरुआत है, अंत से तार ट्रिम करने की अनुमति मिलती है, या दोनों:

import 'package:more/char_matcher.dart'; 

... 

var whitespace = new CharMatcher.whitespace(); // what to trim 

whitespace.trimFrom(input); // trim from beginning and end 
whitespace.trimLeadingFrom(input); // trim from beginning 
whitespace.trimTrailingFrom(input); // trim from end 
1

लेकिन यह उन्हें लागू करने के लिए काफी आसान है हमने आज trimLeft और trimRight को क्विवर में जोड़ा, हालांकि यह पता चला है कि उन्हें भविष्य में एसडीके रिलीज में String में जोड़ा जा रहा है। हालांकि आप आज क्विवर का उपयोग कर सकते हैं।

इन कार्यान्वयन और रेगेक्स-आधारित समाधान के बीच का अंतर यह है कि व्हाइटस्पेस की परिभाषा String.trim के समान है। रेगेक्स कम सफेद जगहों को पहचानता है।

http://pub.dartlang.org/packages/quiver

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