teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

ミス

2019/01/16 03:28

投稿

runny_nose
runny_nose

スコア280

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  同様の判定を複数回つかうようなら、
2
2
  例えば下記のような拡張メソッドを使用するのも手だと思います。
3
3
 
4
- ※`RemoveWhiteSpace()`の処理方法はpapinianusさんが指摘されている内容に変更しました。
4
+ ※`RemoveWhiteSpace()`の処理方法はpapinianusさんが指摘されている内容に変更しました。(System.Linqの参照が必要です。)
5
5
  ```csharp
6
6
  using System.Linq;
7
7
 
@@ -41,7 +41,7 @@
41
41
  /// <param name="str"></param>
42
42
    public static string RemoveWhiteSpace(this string str)
43
43
  {
44
- return string.Join("", s.Where(c => !char.IsWhiteSpace(c)));
44
+ return string.Join("", str.Where(c => !char.IsWhiteSpace(c)));
45
45
  }
46
46
  }
47
47
  ```

5

papinianusさんの指摘に変更

2019/01/16 03:28

投稿

runny_nose
runny_nose

スコア280

answer CHANGED
@@ -1,7 +1,10 @@
1
1
  同様の判定を複数回つかうようなら、
2
2
  例えば下記のような拡張メソッドを使用するのも手だと思います。
3
3
 
4
+ ※`RemoveWhiteSpace()`の処理方法はpapinianusさんが指摘されている内容に変更しました。
4
5
  ```csharp
6
+ using System.Linq;
7
+
5
8
  public static class StringExtensions
6
9
  {
7
10
    /// <summary>
@@ -38,7 +41,7 @@
38
41
  /// <param name="str"></param>
39
42
    public static string RemoveWhiteSpace(this string str)
40
43
  {
41
- return str.Replace(" ", string.Empty).Replace(" ", string.Empty);
44
+ return string.Join("", s.Where(c => !char.IsWhiteSpace(c)));
42
45
  }
43
46
  }
44
47
  ```

4

2019/01/16 03:27

投稿

runny_nose
runny_nose

スコア280

answer CHANGED
@@ -33,7 +33,7 @@
33
33
  }
34
34
    
35
35
  /// <summary>
36
- /// この文字列から半角/全角スペースを取り除いた文字列を返却します
36
+ /// この文字列から半角/全角スペースを取り除いた文字列を返却します
37
37
  /// </summary>
38
38
  /// <param name="str"></param>
39
39
    public static string RemoveWhiteSpace(this string str)

3

サマリコメントを追加

2019/01/16 02:55

投稿

runny_nose
runny_nose

スコア280

answer CHANGED
@@ -4,20 +4,42 @@
4
4
  ```csharp
5
5
  public static class StringExtensions
6
6
  {
7
+   /// <summary>
8
+ /// この文字列が空白文字だけで構成されているかどうかを示します。
9
+ /// </summary>
10
+ /// <param name="str"></param>
11
+ /// <returns></returns>
7
12
  public static bool IsWhiteSpaceOnly(this string str)
8
13
  {
9
14
  return !str.IsNullOrEmpty() && str.IsNullOrWhiteSpace();
10
15
  }
11
16
 
17
+ /// <summary>
18
+ /// この文字列が null または System.String.Empty 文字列であるかどうかを示します。
19
+ /// </summary>
20
+ /// <param name="str"></param>
12
21
  public static bool IsNullOrEmpty(this string str)
13
22
  {
14
23
  return string.IsNullOrEmpty(str);
15
24
  }
16
25
 
26
+ /// <summary>
27
+ /// この文字列が null または空であるか、空白文字だけで構成されているかどうかどうかを示します。
28
+ /// </summary>
29
+ /// <param name="str"></param>
17
30
  public static bool IsNullOrWhiteSpace(this string str)
18
31
  {
19
32
  return string.IsNullOrWhiteSpace(str);
20
33
  }
34
+   
35
+ /// <summary>
36
+ /// この文字列から半角/全角スペースを取り除いた文字列を返却します・
37
+ /// </summary>
38
+ /// <param name="str"></param>
39
+   public static string RemoveWhiteSpace(this string str)
40
+ {
41
+ return str.Replace(" ", string.Empty).Replace(" ", string.Empty);
42
+ }
21
43
  }
22
44
  ```
23
45
  考え方としては、
@@ -37,6 +59,8 @@
37
59
  else
38
60
  {
39
61
  string Sei = sei.Replace(" ", string.Empty).Replace(" ", string.Empty);
62
+ // 前述の拡張メソッドを使用するならこう
63
+ // string Sei = sei.RemoveWhiteSpace();
40
64
  }
41
65
  ```
42
66
  質問者さんはReplaceメソッドを勘違いされてると思うのですが、

2

捕捉

2019/01/16 02:54

投稿

runny_nose
runny_nose

スコア280

answer CHANGED
@@ -20,7 +20,13 @@
20
20
  }
21
21
  }
22
22
  ```
23
+ 考え方としては、
24
+ * `string.IsNullOrEmpty`は「文字列がnullもしくは空文字("")かどうか」
25
+ * `string.IsNullOrWhiteSpace`は「文字列がnullもしくは空文字("")もしくは半角/全角スペースかどうか」
26
+ をそれぞれ判定するメソッドです。
23
27
 
28
+ `空白文字のみ`かどうかは上記2つを組み合わせることで判定できます。
29
+
24
30
  ### 使い方
25
31
  ```csharp
26
32
  //姓と名のスペースの判定
@@ -30,6 +36,9 @@
30
36
  }
31
37
  else
32
38
  {
33
- string Sei = sei.Replace(" ", string.Empty).Replace(" ", string.Empty);
39
+ string Sei = sei.Replace(" ", string.Empty).Replace(" ", string.Empty);
34
40
  }
35
- ```
41
+ ```
42
+ 質問者さんはReplaceメソッドを勘違いされてると思うのですが、
43
+ Replaceメソッドは、「第一引数の文字を、第二引数の文字に置換する」処理です。
44
+ `sei.Replace(" ", " ");`だと、半角スペースを全角スペースに置換することになります。

1

使い方の説明

2019/01/16 02:43

投稿

runny_nose
runny_nose

スコア280

answer CHANGED
@@ -19,4 +19,17 @@
19
19
  return string.IsNullOrWhiteSpace(str);
20
20
  }
21
21
  }
22
+ ```
23
+
24
+ ### 使い方
25
+ ```csharp
26
+ //姓と名のスペースの判定
27
+ if (sei.IsWhiteSpaceOnly())
28
+ {
29
+ // 空白文字のみの時に行いたい処理
30
+ }
31
+ else
32
+ {
33
+ string Sei = sei.Replace(" ", string.Empty).Replace(" ", string.Empty);
34
+ }
22
35
  ```