A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© nooooy 中级黑马   /  2013-10-28 18:08  /  1884 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 nooooy 于 2013-10-29 13:11 编辑

编写一个应用程序对输入的字符串进行操作,将其中的小写字母改为相应的大写字母,大写字母改为相应的小写字母,其他的字符不进行操作。

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

8 个回复

正序浏览
  1. /// <summary>
  2.         /// 编写一个应用程序对输入的字符串进行操作,
  3.         /// 将其中的小写字母改为相应的大写字母,
  4.         /// 大写字母改为相应的小写字母,其他的字符不进行操作。
  5.         /// </summary>
  6.         static char[] Method(string str) {
  7.            
  8.             char[] ch=new char[str.Length];
  9.             for (int i = 0; i < str.Length; i++)
  10.             {
  11.                 //大写
  12.                 if (str[i] >= 'A' && str[i] <= 'Z')
  13.                 {
  14.                     ch[i] = Convert.ToChar(str[i].ToString().ToLower());
  15.                 }
  16.                   //小写
  17.                 else if (str[i]>='a'&&str[i]<='z')
  18.                 {
  19.                     ch[i] = Convert.ToChar(str[i].ToString().ToUpper());
  20.                 }
  21.                     //其他
  22.                 else
  23.                 {
  24.                     ch[i] = Convert.ToChar(str[i].ToString());
  25.                 }
  26.             }
  27.             return ch;
  28.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
首先提出以下本道题需要用到的几个知识点: 1、 判断字符大小写使用ascii码进行判断 2、在每个字符串判断时需要循环遍历整个字符串 3、将小写转换为大写是toUpper() 将大写转换为小写是toLower()
详细步骤 首先采用for或者foreach循环遍历字符串 然后if判断ascii码  由于char类型数据可以反映ascii码 可以用字符进行比较 则为f(这个字符>='a' && 这个字符<='z') {转换为大写}else{转换为小写}
遍历完成整个字符串后 大小写已成功转换

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报

问题解决请将分类设为"已解决".黑马有你更精彩
回复 使用道具 举报

谢谢:D:D
回复 使用道具 举报
重新开始 发表于 2013-10-28 19:06
string str = Console.ReadLine();
            ArrayList arr = new ArrayList();
           ...

谢谢,根据你这个我修改了下。。
  1.             Console.WriteLine("请输入要转换的字符串:");
  2.             string str = Console.ReadLine();
  3.             ArrayList arr = new ArrayList();//创建arraylist
  4.             foreach (var i in str)          //遍历字符串
  5.             {
  6.                 if (i >= 'a' && i <= 'z')  //如果i是小写
  7.                 {
  8.                     arr.Add(char.ToUpper(i));
  9.                 }
  10.                 else if (i >= 'A' && i <= 'Z') //如果i是大写
  11.                 {
  12.                     arr.Add(char.ToLower(i));
  13.                 }
  14.                 else
  15.                 {
  16.                     arr.Add(i);            
  17.                 }
  18.             }
  19.          
  20.             foreach (var a in arr)    //遍历新字符串
  21.             {
  22.                 Console.Write(a+"  ");
  23.             }
  24.                 Console.ReadKey();
复制代码
回复 使用道具 举报
不多说 贴代码
  1. string str = "ABCDEdfdjj786hghjgGGH";
  2.             char[] strs = str.ToCharArray();
  3.             for (int i = 0; i < strs.Length;i++ )
  4.             {
  5.                 //获取字符的ascii值
  6.                 int strAscii = (int)strs[i];
  7.                 //如果是大写字符转换成小写
  8.                 if (strAscii >= 65 && strAscii <= 90)
  9.                 {
  10.                     strs[i] = (char)(strAscii + 32);
  11.                 }
  12.                 if (strAscii >= 97 && strAscii <= 122)
  13.                 {
  14.                     strs[i] = (char)(strAscii - 32);
  15.                 }
  16.                 Console.Write(strs[i]);
  17.             }
复制代码

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
            string str = Console.ReadLine();
            ArrayList arr = new ArrayList();
            foreach (var item in str)
            {
                //ASCII; a~z:122~97 A~Z:65~90
                //使用Char.ToLower 方法 (Char)
                //使用Char.ToUpper 方法 (Char)
                if (item < 123 & item > 96)
                {
                    arr.Add(Char.ToUpper(item));
                }
                else if (item < 91 & item > 64)
                {
                    arr.Add(Char.ToLower(item));
                }
                else
                    arr.Add(item);
            }
            foreach (var item in arr)
            {
                Console.Write(item);
            }
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1 淡定

查看全部评分

回复 使用道具 举报
用ASCII码判断
if(c>='a' && c<='z') 如果是小写字母就toUpper
反之就toLower

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马