2013-01-01 8 views
7

私はDartの新機能で、基本的なライブラリを理解しようとしています。文字列の場合、trim()関数が用意されています。これは良いことですが、文字列の始めか空白の部分だけを切り取る明白な方法はありませんか?私はそれらを見つけることができません。ありがとう。ダーツ文字列の空白を最初または最後から削除する

+2

私はこれが奇妙なギャップであることに同意します。私はずっと前と同じ事について不平を言った。現在、次のマイルストーンで修正される予定です。このバグはhttp://code.google.com/p/dart/issues/detail?id=5589&q=ltrim&colspec=ID%20Type%20Status%20Priority%20Area%20Milestone%20Owner%20Summary –

+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

私はこれらが単にStringメソッドでなければならないことに同意します。上記にリンクされているバグに星を付けてください。 –

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

現在、trimLefttrimRightをQuiverに追加しましたが、今後のSDKリリースではStringにも追加されています。あなたは今日でもQuiverを使うことができます。

これらの実装とRegexベースのソリューションの違いは、空白の定義がString.trimと同じであることです。正規表現は空白文字を認識しません。

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

関連する問題