我正在使用substring和IndexOf来查找字符串中的值,但如果下面的字符串(strOldValue)包含任何不同大小写的字符串,则我的代码无法正常工作。因此,如果strOldValue包含Test或TEST,则我的子字符串失败。在这种情况下,如何添加ToUpper?请原谅我的无知,我是.Net新手。
String strValue = strOldValue.Substring(strOldValue.IndexOf(@"test"));
感谢C。
使用 ToUpper,可以这样做:
String strValue = strOldValue.Substring(
strOldValue.ToUpper().IndexOf(@"TEST"));
然而,最简单的方法是指定比较时不区分大小写:
String strValue = strOldValue.Substring(strOldValue.IndexOf(@"TEST",
StringComparison.CurrentCultureIgnoreCase));
IndexOf 方法的第二个 comparisonType 参数指定如何搜索 value 参数: 使用当前或不变文化, 使用区分大小写或不区分大小写搜索, 或者使用单词或序数比较规则 (参见完整文档 http://msdn.microsoft.com/en-us/library/ms224425.aspx)。
String strValue
= strOldValue.Substring(strOldValue.ToUpper().IndexOf(@"TEST"));
String.IndexOf(String,StringComparison)
可能是最好的答案。在其中使用 ToUpper()
会创建一个额外的 String 对象,需要由垃圾回收器销毁。几乎所有的 String 比较方法都有一个重载,接受一个标志,指明如何进行比较。strValue.Substring(strValue.IndexOf("TEST", StringComparison.OrdinalIgnoreCase));
String strValue = new Regex("test.*",
RegexOptions.IgnoreCase).Match(strOldValue).Value;