如何将textBox中的每个字符串转换为字符串
本文关键字:字符串 转换 textBox | 更新日期: 2023-09-27 18:20:46
我在Form1:中尝试过这样做
private void BtnScrambleText_Click(object sender, EventArgs e)
{
textBox1.Enabled = false;
BtnScrambleText.Enabled = false;
StringBuilder sb = new StringBuilder();
var words = textBox1.Text.Split(new char[] { ' ' });
foreach (var w in words)
{
if (w == " ")
{
sb.Append(w);
continue;
}
ScrambleTextBoxText scrmbltb = new ScrambleTextBoxText(w);
scrmbltb.GetText();
sb.Append(scrmbltb.scrambledWord);
textBox2.AppendText(sb.ToString());
}
}
我的新类是ScrambleTextBoxText,我只是从textBox1中得到一个单词,随机对其进行加扰,然后将加扰的单词添加回textBox2
但在textBox2中,我看到一个长字符串中的所有单词,如:
丹尼,你好,这个
单词之间根本没有空格。我需要将它添加到textBox2中,并使用它在textBox1中的确切空格。
如果在textBox1中,例如:
丹尼你好你好是的2-4
moses daniel yellow
因此,在文本框2中,它应该是同一行:
丹尼你好你好是的2-4
moses daniel yellow
有同样的空间,有两条线,什么都有。
两个问题:
textBox2 中没有空格
它将我在textBox1中键入的任何单词添加到textBox2中,但它应该只添加从我的新类返回的单词:scrmbltb.scrambledWord
例如,如果我在textBox1:hi daniel 中输入
所以在textBox2中应该是:daniel没有字:嗨
或者如果在textBox1中是:daniel嗨你好因此,在textBox2中,它将是:daniel hello
为什么不将它们分开并单独处理呢?例如:
StringBuilder sb = new StringBuilder();
var words = textBox1.Text.Split(new char[] { ' ' });
foreach (var w in words)
{
if (string.IsNullOrEmpty(w))
{
sb.Append(w);
continue;
}
// do something with w
sb.Append(w);
}
该算法将保留所有空间,但允许在附加w
之前对其进行操作。
var str = textbox1.Text.split(' ');
string[] ignoreChars = new string[] { ",", "." };
foreach(string t in str)
{
if(!ignoreChars.Contains(t)) //by this way, we are skipping the stuff you want to do to the words
{
if(!int.TryParse(t)) // same here
{
//dosomething to t
// t = t + "asd";
}
}
textBox2.Text += " " + t;
}
快速简单:
string text = textBox1.Text;
string[] words = text.Split(new string[] { }, StringSplitOptions.RemoveEmptyEntries);
foreach (string word in words)
{
textBox2.Text += " " + ChangeWord(word);
}
如果你不喜欢领先的空间:
textBox2.Text = textBox2.Text.Trim();
编辑
我刚刚注意到你也想把单词ad-hoc改一下。在这种情况下,请参阅上面的更改并添加以下内容:
private string ChangeWord(string word)
{
// Do something to the word
return word;
}
尝试如下操作:
String str=TextBox1.Text;
String[] tokens = str.split(" ");
for(int i=0;i<tokens.length();i++)
{
String retVal = tokens[i];
}
TextBox2.Text=retVal;
您可以对C#使用getline或readline,它将获取文本框中的整行,然后将其存储在临时变量中。