使用索引为查找字符串中单词的开头和结尾

时间:2017-02-06 16:29:39

标签: c# indexof

我有2个字符串。我使用foreach循环将每个字符放入一个列表中。然后我使用for循环遍历2个列表中的每个字符,看看是否存在差异。一旦我发现字符串之间的差异,我想找到已经改变的那个单词的开头和结尾,例如。 String2String1 String2 is the first second string"不同我希望输出为“indexOf。我计划使用 static void Main(string[] args) { const string a = "String1 is the first string"; const string b = "String2 is the second string"; List<String> listString1 = new List<string>(); List<String> listString2 = new List<string>(); foreach (var item in a) { listString1.Add(item.ToString()); } foreach (var item in b) { listString2.Add(item.ToString()); } for (int i = 0; i < a.Length; i++) { var or = listString1[i]; var ed = listString2[i]; int nextSpace = or.IndexOf(' ', index); int previousSpace = or.LastIndexOf(' ', index); if (or!=ed) { Console.WriteLine(); } } } 查找已更改单词的开头和结尾,目前不是 angular.module('activityList', ['ngTable']); 找到指数的位置。

(function(){
'use strict';
angular.
  module('activityList').
  component('activityList', {
    templateUrl: "app/activity-list/activity-list.html",
    controller: ['NgTableParams', function (NgTableParams) {
        var self=this;

          self.activitiesForm=[{id:0,description:"att0"},{id:1,description:"att1"},{id:2,description:"att2"}];
          self.tableParams = new NgTableParams({}, { dataset: self.activitiesForm});


    }]
  });
  })();

2 个答案:

答案 0 :(得分:2)

老实说,我对你想要达到的目标感到困惑。但也许我正在提供我正在提供的东西。

static void Main(string[] args)
{
    string firstString = "I am the first string";
    string secondString = "I am the second string";

    char delimiter = Convert.ToChar(" ");

    if (firstString.Equals(secondString))
    {
        Console.WriteLine("Both strings are equal");
        Console.ReadLine();
    }
    else
    {
        var firstStringList = firstString.Split(delimiter).ToList();

        // ["I", "am", "the", "first", "string"]

        var secondStringList = secondString.Split(delimiter).ToList();

        // ["I", "am", "the", "second", "string"]

        foreach (var word in firstStringList)
        {
            if (secondStringList.IndexOf(word) == -1)
            {
                var indexOfWord = firstStringList.IndexOf(word); // 3
                secondStringList.Insert(indexOfWord, word); // Insert the word that was not found at position 3 inside secondStringList
                // ["I", "am", "the", "first", "second", "string"]
                // [ 0,    1,    2,      3,        4,         5  ]
                Console.WriteLine(string.Join(" ", secondStringList));
                // Join the secondStringList to make 1 string separated by the space character
                Console.ReadLine();
            }
        }

    }
}

此代码将拆分第一个字符串&amp;第二个字符串到包含构成字符串的单词的字符串列表中..然后将遍历第一个字符串列表并将该列表中的每个单词与第二个字符串列表中的单词进行比较..一旦它在第一个字符串中找到单词在第二个字符串中不存在..它将打印该字。

同样,不确定这个目标,但根据我发布的内容需要定制,让我知道。

答案 1 :(得分:0)

基本快乐路径解决方案..

string newString = "";

string[] as1 = "String1 is the first string".Split(new char[] { ' ' });
string[] as2 = "String2 is the second string".Split(new char[] { ' ' });

for (int ndx = 0; ndx < as1.Length; ndx++)
{
    newString += (as1[ndx] == as2[ndx]) ? as1[ndx] : as1[ndx] + ' ' + as2[ndx];
    newString += ' ';
}

至少需要检查数组的边界。但是我不打算为你做所有的功课:)。