根据给定的文件信息,我们可以总结出以下关于C#中全角字符与半角字符转换的相关知识点: ### C# 全角转半角 #### 一、全角与半角字符简介 在计算机中,全角(Full Width)字符与半角(Half Width)字符是根据字符宽度来区分的两种不同格式的字符。一般情况下,全角字符主要用于东亚语言(如中文、日语、韩语等),其宽度相当于两个半角字符的宽度。在ASCII码表中,半角字符的范围是从33到126,而全角字符对应的范围则是从65281到65374。例如,半角的“A”字符的ASCII值为65,而全角的“A”字符的ASCII值则为65293。 #### 二、全角转半角函数实现 ##### ToDBC 方法解析 代码中提供了一个名为 `ToDBC` 的方法,该方法用于将全角字符转换为半角字符。具体实现过程如下: 1. **初始化字符数组**:首先将输入的字符串转换为字符数组 `c`。 2. **遍历字符数组**:通过一个 for 循环逐个检查数组中的每个字符。 3. **空格特殊处理**:如果遇到全角空格(ASCII值为12288),则将其转换为半角空格(ASCII值为32)。 4. **其他字符处理**:对于位于全角字符范围内的其他字符(ASCII值在65281到65374之间),通过减去65248得到相应的半角字符。 最终,将处理后的字符数组重新组合成字符串并返回。 ```csharp public string ToDBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new string(c); } ``` #### 三、示例应用 假设我们有一个包含全角字符的字符串 `"你好,世界!"`,调用 `ToDBC` 方法可以将其转换为半角字符的字符串。 ```csharp string str = "你好,世界!"; string halfWidthStr = ToDBC(str); Console.WriteLine(halfWidthStr); // 输出: 你好,世界! ``` ### C# 半角转全角 #### 四、半角转全角函数实现 ##### ToSBC 方法解析 代码中还提供了一个名为 `ToSBC` 的方法,该方法用于将半角字符转换为全角字符。具体实现过程如下: 1. **初始化字符数组**:同样先将输入的字符串转换为字符数组 `c`。 2. **遍历字符数组**:通过一个 for 循环逐个检查数组中的每个字符。 3. **空格特殊处理**:如果遇到半角空格(ASCII值为32),则将其转换为全角空格(ASCII值为12288)。 4. **其他字符处理**:对于位于半角字符范围内的其他字符(ASCII值在33到126之间),通过加上65248得到相应的全角字符。 最终,将处理后的字符数组重新组合成字符串并返回。 ```csharp public string ToSBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 32) { c[i] = (char)12288; continue; } if (c[i] < 127) c[i] = (char)(c[i] + 65248); } return new string(c); } ``` #### 五、示例应用 假设我们有一个包含半角字符的字符串 `"Hello, World!"`,调用 `ToSBC` 方法可以将其转换为全角字符的字符串。 ```csharp string str = "Hello, World!"; string fullWidthStr = ToSBC(str); Console.WriteLine(fullWidthStr); // 输出: Hello, World! ``` 以上代码提供了在C#中实现全角字符与半角字符相互转换的方法。通过这些方法,开发者可以根据实际需求灵活地对字符串进行格式调整,这对于处理东亚语言文本来说非常有用。
///
任意字符串 /// 全角字符串 ///
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///
public string ToSBC(string input)
{ //半角转全角:
char[] c=input.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
if (c[i]==32)
{
c[i]=(char)12288; continue;
}
if (c[i]<127) c[i]=(char)(c[i]+65248);
}
return new string(c);
}
/// /// 转半角的函数(DBC case) ///
///
任意字符串
/// 半角字符串 ///
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 ///
public string ToDBC(string input)
{
char[] c=input.ToCharArray();
for (int i = 0; i < c.Length; i++)
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- bp-tools-20.12
- 技术资料分享FORESEE 4GB eMMC Spec A4-120210非常好的技术资料.zip
- 技术资料分享FE2.1-Data-Sheet-(Rev.-1.01)非常好的技术资料.zip
- 技术资料分享CC2530中文数据手册完全版非常好的技术资料.zip
- 技术资料分享CC2530非常好的技术资料.zip
- 技术资料分享AU9254A21非常好的技术资料.zip
- 技术资料分享AT070TN92非常好的技术资料.zip
- nethunter-2024.2-generic-arm64-kalifs-minimal.zip
- 基于GJB 8896-2017 网格编码计算 java代码
- 可以与树莓派合体的FPGA开发板