尝试在没有包含方法的字符串中查找特定单词.代码没有按应有的方式工作

本文关键字:代码 单词 工作 方式 包含 方法 字符串 查找 | 更新日期: 2023-09-27 18:33:21

   using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication18
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Sisesta suvaline tekst-->");
            string tekst1 = Console.ReadLine();
            // string tekst2 = ("ja");
            char jtaht = ('j');
            char ataht = ('a');
            int jsidOntekstis = 0;
            int asidOnTekstis = 0;
            int tekstipikkus = tekst1.Length;
            int jasidonTekstis = jsidOntekstis + asidOnTekstis;
            int jasidEiOleTekstis=1;
            for (int i = 0; i < tekstipikkus; i++)
            {
                if (tekst1[i] == jtaht)
                {
                    jsidOntekstis++;
                }
                if (tekst1[i] == ataht)
                {
                    asidOnTekstis++;
                }
            }
                // for (int k = 0; i < tekstipikkus; i++)
                    {
                        {
                        if (jasidonTekstis > jasidEiOleTekstis)
                        {
                            Console.Write("Ja on tekstis olemas");
                        }
                        else
                        {
                            Console.Write("Ja-sid ei ole tekstis");
                        }
                    }
                        }
            Console.ReadKey();
                }
            }
        }

所以这是我的代码,它没有按照应有的方式工作。我的老师让我在没有包含方法的文本中搜索"ja",这样我们就会更合乎逻辑地思考。我完成了所有其他练习,除了这个。谢谢!

尝试在没有包含方法的字符串中查找特定单词.代码没有按应有的方式工作

StackOverflow实际上不是一个人们为你做某事的地方。他们帮助你并告诉你如何做到这一点。此问题仅包含错误的代码段和问题"出了什么问题"。

首先,我需要告诉你,第一个问题显然是算法。我不明白你的代码应该做什么,因为即使你也不明白。

using System;
using System.Text;
namespace ConsoleApplication18
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Where to search -->");
            string text = Console.ReadLine();
            string pattern = "ja"; // Probably, it is better to get it from Console as well      
            for (int i = 0; i < text.Length; i++)
            {
                for (int j = 0; j < pattern.Length; j++)
                {
                    if (text[i+j] == pattern[j] && j == pattern.Length - 1)
                        Console.WriteLine(i);
                    if (text[i+j] != pattern[j]) break;
                }
            }
        }
    }
}

这是(不是最好的)代码,它在没有包含方法的文本中搜索模式。它遍历文本字符串 - 如果它满足模式字符串的第一个字符 - 它会进一步逐个比较字符。如果内部循环迭代到最后,则意味着文本字符串包含模式字符串并输出它的位置。如果在任何时刻字符不相等,则内部循环中断并继续主循环。

研究它并理解它。然后你就可以解决问题了。