码迷,mamicode.com
首页 > Windows程序 > 详细

c#字符串大小写转换

时间:2016-04-07 12:05:10      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:

解决方法如同昆虫世界多姿多彩:

善于总结就会发现,小写与大写的二进制存在某种转换关系:

比如:

大写A 二进制:0100 0001
小写a 二进制:0110 0001
...
 
大写Z 二进制:0101 1010
小写z 二进制:0111 1010
 
可以发现个规律:大小写差别在于第6位的位值,也就是相差32;所以要把大写转换成小写,只需要把它第6位置1;小写转换成大写,把它置0,其他位保持不变;
 
得到两个掩码:
大写--〉小写  0010 0000
小写--〉大写  1101 1111
//////////////////////////////////
A:  0100 0001
or  0010 0000
-------------  
a:  0110 0001
//////////////////////////////////
a:  0110 0001
and 1101 1111
-------------  
A:  0100 0001
/////////////////////////////////
 
//转换成大写
static string ToUpper(string str)
{
    string result = string.Empty;
    for (int i = 0; i < str.Length; i++)
        result += (char)(str[i] & 223);
    return result;
}
//转换成小写
static string ToLower(string str)
{
    string result = string.Empty;
    for (int i = 0; i < str.Length; i++)
        result += (char)(str[i] | 32);
    return result;
}

c#字符串大小写转换

标签:

原文地址:http://www.cnblogs.com/lanke0/p/5362901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!