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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冉贵阳 黑马帝   /  2012-4-9 13:36  /  3103 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

string a = "c#";
            string b = "C#";
            if (a == b)
            {
                Console.WriteLine("输入的课程一致");
            }
            else
            {
                Console.WriteLine("输入的课程不一致");
            }
在用户输入状态下,我们认为c#和C#或者java和JAVA是同一课程,但是VS调试运行时不默认这种情况。就上面的代码忽略大小写怎么解决?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

正序浏览
努力,努力,再努力!!!!!!!!!!!
回复 使用道具 举报
可以这样写:

            string s1 ="c#";
            Console.WriteLine("请输入课程:");
            string s2 = Console.ReadLine();
            if (s2.Equals("c#", StringComparison.OrdinalIgnoreCase))//用Equals()方法比较,忽略大小写!
            {
                Console.WriteLine("课程一样!");


            }
            else
            {
                Console.WriteLine("课程不一样!");
            
            }
            Console.ReadKey();

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
的确,Visual Studio对字母的大小写是很敏感的,同一个字符,若大小写不同,那么它们值是不同的,如果程序稍微复杂一点,那么仅仅用如下代码来判断是费事的,
  1. if(name=="C#"||name=="c#")
复制代码
所以,我们可以先编写一个函数,将输入的字母统一的转换成小写或大写
下面就是我曾经在WinForm中为一个按钮实现大小写字母转换的过程,希望对你能有帮助
对字符的ascci码加或减(‘a’- ‘A’= 32)实现大小写转化:
  1. private void button1_Click(object sender, System.EventArgs e)
  2.         {
  3.          string inputStr = textBox1.Text;
  4.          char[] outputStr = new char[inputStr.Length];
  5.          string s = string.Empty;
  6.          for(int i = 0; i < textBox1.Text.Length; i ++)
  7.              {
  8.                if(inputStr[i] >= 'a' && inputStr[i] <= 'z')
  9.                outputStr[i] = (char)(inputStr[i]- ('a' - 'A'));
  10.                if(inputStr[i] >= 'A' && inputStr[i] <= 'Z') ;
  11.                outputStr[i] = (char)(inputStr[i] + ('a' - 'A'));
  12.              }
  13.              for(int i = 0; i < outputStr.Length; i ++)
  14.             {
  15.              s = s + outputStr[i].ToString();
  16.             }
  17.             label1.Text = s;  
  18.           }
复制代码

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
最好能有简单的定义,要是用户输入的是JAVA这有十几种以上不同的输入形式的时候,怎么判断?
回复 使用道具 举报
VS是大小写敏感的,只要把大小写搞错就会出错。所以"c#"和"C#"是不能相等的,所以编程时要养成良好的习惯注意大小写。
你这个程序简单,可以把大写和小写同时列为条件,改为
        Console.WriteLine(请输入课程);
            string name=Console.ReadLine();
            if (name=="C#" || name=="c#")
            {
                Console.WriteLine("输入的课程一致");
            }
            else
            {
                Console.WriteLine("输入的课程不一致");
            }
如果是复杂的程序忽略大小写我也不会

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

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