2017-09-22 69 views
-1

我有一个字符串生成器,我想在分离时忽略textbox2.Text的大小写(大写或小写)。忽略字符串拆分的情况C#

下面是我认为必须进行调整的代码行。

String[] subStrings = e.Item.Text.Split(new String[] { textBox2.Text }, StringSplitOptions.None); 

StringSplitOptions只有两个选项,这是无与RemoveEmptyEntries

如果我型我完整的程序应该是:“斯蒂芬”,在“泉”文本“斯蒂芬”将突出甚至TextBox2中。文本的第一个字符是小写字母。

我全码:

String[] subStrings = element.Text.Split(new String[] { textBox2.Text }, StringSplitOptions.); 
if (subStrings.Count() >= 2) 
{ 
    StringBuilder sb = new StringBuilder(); 
    sb.Append(subStrings[0]); 
    sb.Append("<color=#0193C6>" + textBox2.Text + "</color>"); 
    sb.Append(subStrings[1]); 
    for (int i = 2; i < subStrings.Count(); i++) 
     sb.Append(textBox2.Text + subStrings[i]); 
    element.Text = sb.ToString(); 
} 
+2

使用[Regex.Split](https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.split.aspx)代替 – maccettura

+1

'ToLowercase()'字符串分裂之前? – Strikegently

+3

你应该改变。这与StringBuilder无关。 –

回答

2

尝试使用Regex.Split。对于例如

Regex.Split(textBox2.Text, "pattern", RegexOptions.IgnoreCase); 
+0

其实我已经试过,但那不是我想要的。 它不工作,我必须把整个模式,突出图案 模式:斯蒂芬 - 库里 TextBox2中=斯蒂芬 - 库里 和模式转换到TextBox2中这是不是我想要 我想要的是当我输入:斯蒂芬。模式不会改变,只需突出显示Steph :) –

+0

您是否尝试过使用LowerCase的另一个答案? string elementString = element.Text; String [] subStrings = elementString.ToLower()。Split(new [] {textBox2.Text.ToLower()},StringSplitOptions.None); – JFT

0

尝试转换元素和textbox.Text ToLower()。

string elementString = element.Text; 
      String[] subStrings = elementString.ToLower().Split(new[] { textBox2.Text.ToLower() }, StringSplitOptions.None); 
      if (subStrings.Count() >= 2) 
      { 
       StringBuilder sb = new StringBuilder(); 
       sb.Append(subStrings[0]); 
       sb.Append("<color=#0193C6>" + textBox2.Text + "</color>"); 
       sb.Append(subStrings[1]); 
       for (int i = 2; i < subStrings.Count(); i++) 
        sb.Append(textBox2.Text + subStrings[i]); 
       element.Text = sb.ToString(); 
      }