2013-07-02 104 views
1

我試圖做這種方式在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的爭奪得到一個字呢randomaly然後IM加入炒字回TextBox2中

但在TextBox2中我看到了一個長字符串的所有單詞,如:

dannyhihellobyethis

有沒有空間在字間。 我需要將它添加到textBox2中,並使用textBox1中的確切空格。

如果textBox1的是例如:

丹尼你好喜是兩個四

moses daniel yellow 

所以在TextBox2中它應該是相同的行這樣的:

丹尼你好喜是兩個四

moses daniel yellow 

具有相同的空間,兩行下來,一切。

兩個問題:

  1. 在TextBox2中

  2. 其增加TextBox2中我在TextBox1中輸入任何文字,但它應該只添加,從我的新類返回的話沒有空格:scrmbltb.scrambledWord

例如,如果我在textBox1的輸入:喜丹尼爾

所以在TextBox2中它應該是:丹尼爾 無字:喜

,或者如果textBox1的是:丹尼爾·喜你好 所以在TextBox2中這將是:丹尼爾你好

+0

老實說,你有沒有嘗試過自己? – JeffRSon

回答

4

爲什麼不拆他們的工作這與個人?例如:

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

+1

打我吧:/ – TheGeekZn

+0

Michael Perrenoud即時通訊錯誤如果(w =='')運算符'=='不能應用於類型'字符串'和'字符'的操作數 –

+0

@HaimKashi,改變到'w ==「」'。 –

0

嘗試做如下:

String str=TextBox1.Text; 
String[] tokens = str.split(" "); 

for(int i=0;i<tokens.length();i++) 
{ 
    String retVal = tokens[i]; 
} 

TextBox2.Text=retVal; 
1

快速而簡單:

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; 
} 
0

您可以使用函數getline或爲的ReadLine C#這將讓在文本框中整行,然後將其存儲在一個臨時變量。

1
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; 
} 
相關問題