C# 比较c语言中的两个字符串#
我的问题是,我试图比较两个字符串,一个在文件中(比如说C# 比较c语言中的两个字符串#,c#,C#,我的问题是,我试图比较两个字符串,一个在文件中(比如说csm 22+),另一个在文件名中(比如说csm22>)+westbengal@v2)。我必须检查文件名(即csm 22+中的字符串是否与文件名(即csm22)中的字符串匹配+westbengal@v2 文件CS M 22+中的字符串称为目标名称,文件名中的字符串是市场名称的后缀,即csm22+,然后是市场名称westbengal@v2. 下面是我在比较两个字符串的char时实现的逻辑。但是,如果在测试过程中,我将我的内部文件字符串更改为C
csm 22+
),另一个在文件名中(比如说csm22>)+westbengal@v2
)。我必须检查文件名(即csm 22+
中的字符串是否与文件名(即csm22)中的字符串匹配+westbengal@v2
文件CS M 22+
中的字符串称为目标名称,文件名中的字符串是市场名称的后缀,即csm22+,然后是市场名称westbengal@v2.
下面是我在比较两个字符串的char时实现的逻辑。但是,如果在测试过程中,我将我的内部文件字符串更改为CS M 22
,即,如果我从内部文件字符串(CS M 22+)中删除任何内容,则该逻辑将失败
如果两者都是匹配的,那么它是好的,否则我写的文件名
//For your reference
//splittedTGMKTName = csm22+westbengal@v2
//trimedTGMKTName = csm22+
// and the below logic fails if i remove anything from the trimedTGMKTName like if
// i remove "+" and the logic works fine if i added anything to the trimedTGMKTName and then compare
foreach (var chr in splittedTGMKTName.ToCharArray())
{
if (isContentLoopComplete)
{
if (lastChar == '-' || lastChar == '+' || chr == '-' || chr == '+')
{
isOldFile = true;
break;
}
}
for (int i = jpointer; i < trimedTGMKTName.ToCharArray().Length; )
{
if (trimedTGMKTName.Length - 1 == i)
{
isContentLoopComplete = true;
lastChar = chr;
}
if (chr != trimedTGMKTName[i])
{
isbreak = true;
}
jpointer++;
break;
}
if (isbreak)
break;
}
if (!isOldFile)
{
fileCount = ++fileCount;
hasErrors = true;
sw = new StreamWriter(folderPath + "/" + "Files_with_mismatch_TGMKT_Names_" + folder.Name + ".txt", true);
sw.WriteLine(fileName);
sw.Close();
}
//供您参考
//splittedTGMKTName=csm22+westbengal@v2
//trimedTGMKTName=csm22+
//如果我从trimedTGMKTName中删除任何内容(如
//我删除了“+”,如果我向trimedTGMKTName添加了任何内容,然后进行比较,那么逻辑工作正常
foreach(splittedTGMKTName.ToCharArray()中的var chr)
{
如果(isContentLoopComplete)
{
如果(lastChar='-'| | lastChar='+'| | chr='-'| | chr='+'))
{
isOldFile=true;
打破
}
}
对于(int i=jpointer;i
非常感谢您的帮助。谢谢。如果您想检查您的函数是否处于调用函数的开始,可以使用该函数:
例如:
如果要检查字符串是否包含其他字符串,可以使用contains
函数。
对于相等,您可以使用Equals
如果要检查您的函数是否在调用函数的开头,您可以使用该函数:
例如:
如果要检查字符串是否包含其他字符串,可以使用contains
函数。
对于相等,您可以使用
Equals
注意,当您添加“StringComparison.OrdinalingOreCase”参数时,您会得到一个不区分大小写的匹配(因此“CSM22+”也会匹配)注意,当您添加“StringComparison.OrdinalingOreCase”参数时,您会得到一个不区分大小写的匹配(因此“CSM22+”也会匹配)对我来说也是失败的对我来说也是失败的
string src="csm22+westbengal@v2";
src.StartsWith("csm22")// will return true