当前位置:编程学习 > C#/ASP.NET >>

c#字符串大小写转换

帮帮忙啊啊啊,如何变,新手作业,实在不会了 c# --------------------编程问答-------------------- 百度谷歌一堆,自己动手丰衣足食 --------------------编程问答-------------------- 就是将字符串的所有单词的首字母大写,现在会判定,大师大小写转换盒和在原文本流中改变大小写没有头绪啊 --------------------编程问答-------------------- 那个不合用啊,而且代码有点看不懂啊,新手 --------------------编程问答-------------------- string str="asc";
str=str.ToUpper();//大写
str=str.ToLower();//小写 --------------------编程问答-------------------- 还是换个专业吧。。。 --------------------编程问答-------------------- http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx --------------------编程问答--------------------
string str = "Hello World!";
char[] chr = str.ToCharArray();
for (int i = 0; i < chr.GetLength(0); i++)
{
    if (chr[i] >= 'A' && chr[i] <= 'Z') // 说明是大写
        chr[i] += 32; // 将大写转化为小写
}
string result = new string(chr); // result = "hello world";


小写转大写思路类似,自己去写 --------------------编程问答--------------------
String words = "good job";
            Console.WriteLine(String.Join(" ", words.Split(' ').Select(x => x[0].ToString().ToUpper() + x.Substring(1))));
--------------------编程问答-------------------- 上面的方法都不错啊 --------------------编程问答--------------------

解决方法如同昆虫世界多姿多彩:
楼主你善于总结就会发现,小写与大写的二进制存在某种转换关系:
比如:
大写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;
}
--------------------编程问答-------------------- 随便那本书讲字符串的章节都有这方面内容,楼主的学习态度要端正下。。 --------------------编程问答-------------------- 不好好象楼主想要实现文本中单词首字母大写!看来我上面发表错了!!为什么要在2楼才提需求呢!! --------------------编程问答--------------------
引用 4 楼 Chinajiyong 的回复:
string str="asc";
str=str.ToUpper();//大写
str=str.ToLower();//小写

版主这样的题让他做做吧
学到字符串的时候肯定学到了循环 自己动手丰衣足食
这些API还是以后工作在用吧 --------------------编程问答--------------------
引用 7 楼 caozhy 的回复:
string str = "Hello World!";
char[] chr = str.ToCharArray();
for (int i = 0; i < chr.GetLength(0); i++)
{
    if (chr[i] >= 'A' && chr[i] <= 'Z') // 说明是大写
        chr[i] += 32; // 将大写转化为小写
}
string result = new string(chr); // result = "hello world";


小写转大写思路类似,自己去写



string str = "HEllo world!";
char[] chr = str.ToCharArray();
for (int i = 0; i < chr.GetLength(0); i++)
{
    if (chr[i] >= 'a' && chr[i] <= 'z') && (i == 0 || chr[i - 1] == ' ') // 当前字母是小写,并且前一个字符是空格或者没有前一个字符
        chr[i] -= 32; // 将小写转化为大写
}
string result = new string(chr); // result = "HEllo World"; --------------------编程问答--------------------
引用 6 楼 silwol 的回复:
http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx


当然,调用现成的方法也可以,但是作为作业题,估计这不行。 --------------------编程问答--------------------
引用 4 楼 Chinajiyong 的回复:
string str="asc";
str=str.ToUpper();//大写
str=str.ToLower();//小写

斑竹太有才了 瞬间high了 --------------------编程问答-------------------- 作业一般是不能直接调用方法记得 --------------------编程问答--------------------
引用 12 楼 hwenycocodq520 的回复:
不好好象楼主想要实现文本中单词首字母大写!看来我上面发表错了!!为什么要在2楼才提需求呢!!
瞬间感觉呗坑了 --------------------编程问答--------------------

string str="hello world too";
List temp;
string re="";
string tt="";
char u='';
foreach(string t in str.split()){temp.add(t);}
for (int i=0;i=temp.length();i++)
{
  tt=temp[1].value.ToString();
  u=(char)tt[1];
  if(!(u>='A' && u<='Z')) u=u-32;
  tt=tt.SubString(2,tt.length()-1);
  tt=u.ToString()+tt;
  re+=tt+" ";//re就是转换后的字符串
}
" --------------------编程问答-------------------- tt=temp[1].value.ToString();这里 改为tt=temp[i].value.ToString();不小心写错了 --------------------编程问答-------------------- 网上也太多了,真不理解这么懒
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,