5

私はテキストを別の言語に変換する単純なコンバーターに取り組んでいます、

2つのテキストボックスがあり、最初のボックスに単語を入力しIndexて変換ボタンを押したとします。
私はあなたのテキストをウルドゥー語فہرستの代替手段に置き換えますが、単語を入力してスペースを与えるか、リターンを与えると問題が発生します。このようにc#でそのテキストボックスのテキストを取得します。これを取り除くにはどうすればよいですか。いつもシンプルにしたい。 ご回答ありがとうございます。ご不明な点がございましたら、お気軽にコメントしてください。IndexindexIndex \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nIndex

4

4 に答える 4

9

Trim新しい行が最初の最後にある場合は、このメソッドを使用してみてください。

input = input.Trim();

Replace文字列内の任意の場所で新しい行を削除する場合は、を使用できます。

// Replace line break with spaces
input = input.Replace("\r\n", " ");
// (Optionally) Combine consecutive spaces to one space (probalby not most efficient but should work)
while (input.Contains("  ")) { input = input.Replace("  ", " "); }

改行を完全に防止したい場合、ほとんどのTextBoxコントロールには、MultiLine設定されたときに複数の行を入力できないようにする、または同様のプロパティがあります。

于 2012-12-19T11:42:35.557 に答える
5

これは、Char.IsWhiteSpaceで定義されている空白(空白、改行など)を削除するのに十分なはずです。

string wordToTranslate = textBox1.Text.Trim();

ただし、テキストボックスに複数の単語が含まれている場合は、別のアプローチを使用する必要があります

string[] words = textBox1.Text.Split((char[]) null, StringSplitOptions.RemoveEmptyEntries);
foreach(string wordToTranslate in words)
    ExecTranslation(wordToTranslate);

区切り文字としてchar[]nullを指定してSplitを使用すると、すべての空白を有効な単語の区切り文字として識別できます。

于 2012-12-19T11:43:19.943 に答える
5

input.Replace(Environment.NewLine, string.Empty).Replace(" ", string.Empty);

Replace文字列の「内部」から文字を削除するユーザー。Trim文字列の最初と最後の文字のみを削除します。

于 2012-12-19T11:44:16.693 に答える
4

無視するすべての文字を文字列に追加します。

var cleanChars = text.Where(c => !"\n\r".Contains(c));
string cleanText = new string(cleanChars.ToArray());

文字列がを実装しているため、これは機能しますIEnumerable<char>

于 2012-12-19T11:45:31.897 に答える