2014-09-27 43 views
0

它比较文本中的非常简单的场景,但我一直在比较两个文本。在C#中我创建了一个函数splitText它将文本分割成定义的字符数,然后我将分割文本分配给一个字符串变量,然后与另一个字符串比较,但比较不起作用。c中的文本分割和文本匹配#

这里是splitText功能

private string splitText(string Text, int startingIndex, int totalCharacters) 
     { 
      string s = ""; 
      char[] str = new char[100]; 
      int count = 0; 
      for (int i = startingIndex; i <= totalCharacters; i++) 
      { 
       str[count++] = Text[i]; 

      } 
      s = new string(str); 
      return s; 
     } 

这里是我比较字符串的代码,但它不工作

private void button1_Click(object sender, EventArgs e) 
     { 
      string s = splitText("Khuram Jan", 0, 2); 
      if (s.Equals("Khu")) 
      { 
       MessageBox.Show("I have done"); 
      } 
      else 
      { 
       MessageBox.Show("Does not compare"); 
      } 
     } 

我也显示字符串s值,它表明我Khu,但它不起作用,如果条件,alwys其他部分执行。我测试了很多,但徒劳无功解决了这个问题。

回答

1

您的代码名为对待的totalCharacters变量,如果这将是endIndex。但真正的问题是,你返回一个长度为100的字符串,前三个字符为Khu。改为返回new string(str, 0, count)

+0

但问题是如何使用动态字符数组我是字符型[] str = new str [totalCharacters]但它给了我例外。 – 2014-09-27 10:56:00

+0

非常感谢莱姆斯Rusano对我的帮助,现在它的工作原理, – 2014-09-27 11:04:32

0

的问题是,你没有得到确切的图表长度的字符串返回值。在你的情况,你正在返回 “躯\ 0 \ 0 \ 0 ....”

修改行

char[] str = new char[totalCharacters+1]; 

顺便说一句,您可以使用下面呢!

string s1 = "Khuram Jan".Substring(0, 3); 
+0

非常感谢,我明白我在那里做的错误,thansks为你的价值能够评论 – 2014-09-27 11:07:08