黑马程序员技术交流社区
标题:
自动区分大小写
[打印本页]
作者:
冉贵阳
时间:
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对字母的大小写是很敏感的,同一个字符,若大小写不同,那么它们值是不同的,如果程序稍微复杂一点,那么仅仅用如下代码来判断是费事的,
if(name=="C#"||name=="c#")
复制代码
所以,我们可以先编写一个函数,将输入的字母统一的转换成小写或大写
下面就是我曾经在WinForm中为一个按钮实现大小写字母转换的过程,希望对你能有帮助
对字符的ascci码加或减(‘a’- ‘A’= 32)实现大小写转化:
private void button1_Click(object sender, System.EventArgs e)
{
string inputStr = textBox1.Text;
char[] outputStr = new char[inputStr.Length];
string s = string.Empty;
for(int i = 0; i < textBox1.Text.Length; i ++)
{
if(inputStr[i] >= 'a' && inputStr[i] <= 'z')
outputStr[i] = (char)(inputStr[i]- ('a' - 'A'));
if(inputStr[i] >= 'A' && inputStr[i] <= 'Z') ;
outputStr[i] = (char)(inputStr[i] + ('a' - 'A'));
}
for(int i = 0; i < outputStr.Length; i ++)
{
s = s + outputStr[i].ToString();
}
label1.Text = s;
}
复制代码
作者:
刘冬晓
时间:
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