黑马程序员技术交流社区

标题: 自动区分大小写 [打印本页]

作者: 冉贵阳    时间: 2012-4-9 13:36
标题: 自动区分大小写
string a = "c#";
            string b = "C#";
            if (a == b)
            {
                Console.WriteLine("输入的课程一致");
            }
            else
            {
                Console.WriteLine("输入的课程不一致");
            }
在用户输入状态下,我们认为c#和C#或者java和JAVA是同一课程,但是VS调试运行时不默认这种情况。就上面的代码忽略大小写怎么解决?
作者: 张云静    时间: 2012-4-9 13:47
VS是大小写敏感的,只要把大小写搞错就会出错。所以"c#"和"C#"是不能相等的,所以编程时要养成良好的习惯注意大小写。
你这个程序简单,可以把大写和小写同时列为条件,改为
        Console.WriteLine(请输入课程);
            string name=Console.ReadLine();
            if (name=="C#" || name=="c#")
            {
                Console.WriteLine("输入的课程一致");
            }
            else
            {
                Console.WriteLine("输入的课程不一致");
            }
如果是复杂的程序忽略大小写我也不会
作者: 冉贵阳    时间: 2012-4-9 13:57
最好能有简单的定义,要是用户输入的是JAVA这有十几种以上不同的输入形式的时候,怎么判断?
作者: 黄雄斌    时间: 2012-4-9 14:07
的确,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.           }
复制代码

作者: 刘冬晓    时间: 2012-4-9 14:09
可以这样写:

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


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

作者: pray    时间: 2014-4-26 08:04
努力,努力,再努力!!!!!!!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2