需移除字串中的所有空白字元(Space,ASCII 32)。
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = textBox1.Text;
CharEnumerator myenum = textBox1.Text.GetEnumerator();
while (myenum.MoveNext())
{
byte[] array = new byte[1];
array = System.Text.Encoding.ASCII.GetBytes(myenum.Current.ToString());
int asciiCode = (short)(array[0]);
if (asciiCode != 32)
{
textBox3.Text += myenum.Current.ToString();
}
}
}
string result = input.Replace(" ", "");
using System.Text.RegularExpressions;
string result = Regex.Replace(input, @"\s+", "");
using System.Linq;
string result = new string(input.Where(c => !char.IsWhiteSpace(c)).ToArray());
using System.Text;
StringBuilder sb = new StringBuilder(input.Length);
foreach (char c in input)
{
if (c != ' ') sb.Append(c);
}
string result = sb.ToString();
| 方法 | 適用場景 | 效能 |
|---|---|---|
| Replace | 單一字元移除,程式碼最簡潔 | 優 |
| Regex | 需移除所有空白字元(含 \t \n \r) | 良 |
| LINQ | 程式碼可讀性佳,功能彈性大 | 中 |
| StringBuilder | 大量字串處理、迴圈內修改 | 最佳 |
| CharEnumerator + ASCII | 教學示範、特殊編碼需求 | 較低 |
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Linq;
public class StringSpaceRemover
{
public static string RemoveSpaces_Replace(string input) => input.Replace(" ", "");
public static string RemoveSpaces_Regex(string input) => Regex.Replace(input, @"\s+", "");
public static string RemoveSpaces_Linq(string input) =>
new string(input.Where(c => !char.IsWhiteSpace(c)).ToArray());
public static string RemoveSpaces_StringBuilder(string input)
{
var sb = new StringBuilder(input.Length);
foreach (char c in input) if (c != ' ') sb.Append(c);
return sb.ToString();
}
}