Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较c语言中的两个字符串#_C# - Fatal编程技术网

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