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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 穆玉明 中级黑马   /  2013-6-14 14:29  /  7830 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 穆玉明 于 2013-6-14 18:37 编辑

string scoreA = "c#";
            string scoreB = "C#";
            if (scoreA == scoreB)
            {
                Console.WriteLine("你们喜欢相同的课程");
            }
            else
            {
                Console.WriteLine("你们喜欢不同的课程");
            }
            Console.ReadKey();


比如以上我都输入c#但大小写不一样,我怎么变成实现忽略问题

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

6 个回复

倒序浏览
两种方式
一种是先将字符串都转化为大写/小写,然后再进行对比,命令是toupper()/tolower(),还有一种是利用Equals命令
A.Equals(B),拿b跟a进行比较,此时还是区分大小写的,完整的不区分大小写比较应该是
A.Equals(B,StringComparison.OrdinalIgnoreCase)

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
string lowerCase = "abc";
string  scoreA = "c#";
string  scoreB = "C#";
int result1 = string.Compare(scoreA , scoreB , StringComparison.CurrentCultureIgnoreCase);//对大小写不敏感
int result2= string.Compare(scoreA ,scoreB ,StringComparison.CurrentCulture);//对大小写敏感
变量result2的值为-1(表示scoreA “小于”scoreB )或0(表示scoreA “等于”scoreB)。
对于字符串的比较可以使用静态方法string.Compare可以使用户自由选择比较字符串时是否考虑其大小写问题。该方法返回一个整形变量用以表示两个字符串之间的关系。0表示两个字符串完全相等,负数表示第一个字符串小于第二个字符串,正数表示第一个字符串大于第二个字符串。
      通过设定该方法的最后一个参数(comparisonType)为StringComparison.CurrentCultureIgnoreCase或StringComparison.CurrentCulture,可决定Compare方法在比较两个字符串时是否考虑其大小写问题,将这个参数设定为StringComparison.CurrentCulture可促使其进行大小写敏感的比较;设定参数为
StringComparison.CurrentCultureIgnoreCase可促使其进行大小写不敏感的比较。在使用其不包含comparisonTyp参数的重载方法时,默认比较方式为大小写敏感。
希望你能明白且对你有用。谢谢!!!

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 忽略大小写
{
    class Program
    {
        static void Main(string[] args)
        {

            string scoreA = "c#";
            string scoreB = "C#";
            scoreB = scoreB.ToLower();//将scoreB换成小写字符串再比较
            scoreA = scoreA.ToUpper();//将scoreA换成大写字符串再比较
            if(scoreA.Equals(scoreB, StringComparison.OrdinalIgnoreCase))//不将字符串进行转换直接在比较时忽略大小
            //if (scoreA == scoreB)
            {
                Console.WriteLine("你们喜欢相同的课程");
            }
            else
            {
                Console.WriteLine("你们喜欢不同的课程");
            }
            Console.ReadKey();
        }
    }
}
你可以参考一下,以上的程序。如有不妥请指出,谢谢

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
有两种方法,第一种方法比较笨
就是将两个变量都Upper或者都Lower一下,可以实现比较,变量本身不会变,因为字符串是不可变的

第二种方法就是str1.Equals(str2,StringComparison.OrdinalIgnoreCase),这种字符串比较的重载是忽略大小写比较的

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
要么用字符串的toupper()方法或者  tolower()方法,
或者字符串的string.Equals(str1,str2,StringComparison.OrdinalIgnoreCase)方法的这种重载,忽略大小写比较,
或者compare()方法的一个重载来实现忽略大小写比较,compare()方法返回一个int值,根据int值判断两个时候相等!!!

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
李奔 中级黑马 2013-6-14 21:11:49
7#
一种比较简单的实现方法:
  1.             string scoreA = "c#";
  2.             string scoreB = "C#";
  3.             //比较字符串忽略大小写
  4.             if (scoreA.Equals(scoreB,StringComparison.OrdinalIgnoreCase))
  5.             {
  6.                 Console.WriteLine("你们喜欢相同的课程");
  7.             }
  8.             else
  9.             {
  10.                 Console.WriteLine("你们喜欢不同的课程");
  11.             }
  12.             Console.ReadKey();
复制代码

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

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