C#中如何对字符串进行不区分大小写的比较?

时间:2022-01-06 01:01:02
/*实现一个简单的字符串搜索功能,
文本文件的一行如果包含指定的字符串则该行被记录在另一个文件中.
如果使用.IndexOf()的话,比较是区分大小写.
如何实现不区分大小写的比较?*/

StreamReader openSR = null;
StreamWriter saveSR = null;
string tempStr = null;
bool overWrite = true;

openSR = new StreamReader(@openFileName);
saveSR = new StreamWriter(@saveFileName,overWrite);

while (null != (tempStr = openSR.ReadLine()))
{
    if (-1 != tempStr.IndexOf(findKeys))
    {
        saveSR.WriteLine(tempStr);
    }
}

7 个解决方案

#1


findKeys=findKeys.ToLower(); 
findKeys1 = findKeys.ToUpper();
if (-1 != tempStr.IndexOf(findKeys) || -1 != tempStr.IndexOf(findKeys1))
    {
        saveSR.WriteLine(tempStr);
    }

#2


findKeys = findKeys.ToUpper();
tempStr.ToUpper();
if (-1 != tempStr.IndexOf(findKeys) 
    {
        saveSR.WriteLine(tempStr);
    }

#3


这样不行.
如在"AbC powers"中需要判断是否包含"abc".按你的方法是无法得到正确结果的.

#4


是否有现成的类,用于字符串比较大小呢?

#5


直接将每一行的文字都转为大或小写比较的话,处理性能上有问题.我需要处理的文件通常在100M以上.
我刚从VB转向C#,难道在C#中没有类似VB中的instr()的方法吗?

#6


String.Compare(string,string,boolean)
其中boolean设为true,表示不区分大小写的比较!
小于零:   strA 小于 strB。 
等于零:   strA 等于 strB。 
大于零:   strA 大于 strB。 


#7


我想"C#中如何对字符串进行不区分大小写的比较? "主题写错了.
应改名为:"C#中如果不区分大小写判断在一个字符串中包含另一个字符串?"

#1


findKeys=findKeys.ToLower(); 
findKeys1 = findKeys.ToUpper();
if (-1 != tempStr.IndexOf(findKeys) || -1 != tempStr.IndexOf(findKeys1))
    {
        saveSR.WriteLine(tempStr);
    }

#2


findKeys = findKeys.ToUpper();
tempStr.ToUpper();
if (-1 != tempStr.IndexOf(findKeys) 
    {
        saveSR.WriteLine(tempStr);
    }

#3


这样不行.
如在"AbC powers"中需要判断是否包含"abc".按你的方法是无法得到正确结果的.

#4


是否有现成的类,用于字符串比较大小呢?

#5


直接将每一行的文字都转为大或小写比较的话,处理性能上有问题.我需要处理的文件通常在100M以上.
我刚从VB转向C#,难道在C#中没有类似VB中的instr()的方法吗?

#6


String.Compare(string,string,boolean)
其中boolean设为true,表示不区分大小写的比较!
小于零:   strA 小于 strB。 
等于零:   strA 等于 strB。 
大于零:   strA 大于 strB。 


#7


我想"C#中如何对字符串进行不区分大小写的比较? "主题写错了.
应改名为:"C#中如果不区分大小写判断在一个字符串中包含另一个字符串?"