尝试在没有包含方法的字符串中查找特定单词.代码没有按应有的方式工作
本文关键字:代码 单词 工作 方式 包含 方法 字符串 查找 | 更新日期: 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;
}
}
}
}
}
这是(不是最好的)代码,它在没有包含方法的文本中搜索模式。它遍历文本字符串 - 如果它满足模式字符串的第一个字符 - 它会进一步逐个比较字符。如果内部循环迭代到最后,则意味着文本字符串包含模式字符串并输出它的位置。如果在任何时刻字符不相等,则内部循环中断并继续主循环。
研究它并理解它。然后你就可以解决问题了。