Ralph O'Lakka Ответов: 4

[C#] найти слово за словом?


Привет, ппл! Как я могу сделать так, чтобы мое приложение находило слово за словом? Я сделал это в VB.NET с помощью этого кода:

Dim str As String = TextBox1.Text$.Replace(" ", vbNullString)
        TextBox1.Text = TextBox2.Text$.Substring(TextBox2.Text$.IndexOf(str) + Val(str.Length + 1)).Split(" ")(0)


Но, когда я использую VB.NET в конвертер C# я получаю этот код:

string str = textBox1.Text.Replace(" ", null);
            textBox1.Text == textBox2.Text.Substring(textBox2.Text.IndexOf(str) + Conversion.Val(str.Length + 1)).Split(" ")(0);


Я получаю ошибки, такие как "преобразование" не существует в текущем контексте. Кто-нибудь может помочь?

Что я уже пробовал:

string str = textBox1.Text.Replace(" ", null);
            textBox1.Text == textBox2.Text.Substring(textBox2.Text.IndexOf(str) + Conversion.Val(str.Length + 1)).Split(" ")(0);

4 Ответов

Рейтинг:
2

OriginalGriff

Это вина вашего VB-кода: зачем вы вообще это делаете:

Val(str.Length + 1)
Val преобразует строку в число, поэтому вы берете два числа, складываете их вместе, преобразуете их в строку, а затем преобразуете их обратно в число...

Попробуй:
string str = textBox1.Text.Replace(" ", null);
textBox1.Text = textBox2.Text.Substring(textBox2.Text.IndexOf(str) + str.Length + 1).Split(" ")[0];


Рейтинг:
2

Sheila Pontes

Привет,

Ваш код c#.

string str = textBox1.Text.Replace(" ", null);
string[] aryDados  = textBox2.Text.Substring(textBox2.Text.IndexOf(str) + (str.Length + 1)).Split(' ');
textBox1.Text = aryDados[0];


Рейтинг:
1

Matt Comb

Вы можете сделать это вот так:

string text = "one word right";
var after = text.Split(new string[] { "word" }, StringSplitOptions.None);
if (after.Length > 1)
{
    string right = after[1].Trim(' ');
    string firstWordAfter = right.IndexOf(" ") > -1
                 ? right.Substring(0, right.IndexOf(" "))
                 : right;