文字列が空白であるか、未確定のスペースでいっぱいであるかどうかを簡単に確認するにはどうすればよいですか?
.NET 4をお持ちの場合は、 string.IsNullOrWhiteSpace
メソッド :
if(string.IsNullOrWhiteSpace(myStringValue))
{
// ...
}
.NET 4がなく、文字列をトリムすることができる場合は、まずトリムをトリムしてから、空かどうかを確認できます。
それ以外の場合は、自分で実装を検討できます。
文字列がnullではないことが既にわかっていて、空の文字列ではないことを確認したい場合は、次を使用します。
public static bool IsEmptyOrWhiteSpace(this string value) =>
value.All(char.IsWhiteSpace);
「文字列が空白か、不特定のスペースでいっぱいか」を文字通り知る必要がある場合は、@ Sonia_ytが示唆するようにLINQを使用しますが、All()
を使用して、すぐに効率的に短絡するあなたは非スペースを見つけました。
(これはシミーのギブと同じか、または同じですが、onlyに書かれているOPの質問に答えます。すべての空白ではなくスペースを確認します-\t
、\n
、\r
、 など )
/// <summary>
/// Ensure that the string is either the empty string `""` or contains
/// *ONLY SPACES* without any other character OR whitespace type.
/// </summary>
/// <param name="str">The string to check.</param>
/// <returns>`true` if string is empty or only made up of spaces. Otherwise `false`.</returns>
public static bool IsEmptyOrAllSpaces(this string str)
{
return null != str && str.All(c => c.Equals(' '));
}
コンソールアプリでテストするには...
Console.WriteLine(" ".IsEmptyOrAllSpaces()); // true
Console.WriteLine("".IsEmptyOrAllSpaces()); // true
Console.WriteLine(" BOO ".IsEmptyOrAllSpaces()); // false
string testMe = null;
Console.WriteLine(testMe.IsEmptyOrAllSpaces()); // false
LinQを使用して解決してみてください?
if(from c in yourString where c != ' ' select c).Count() != 0)
文字列がすべてスペースではない場合、これはtrueを返します。