2012-12-12 123 views
0

我比较richTextBox1和richTextBox2逐字。比较两个RichTextBox?

// collect words from ritchtextbox1 
String[] test = richtextbox1.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 

// find each word test to richtextbox2 
// if it is found then change back color of particular word to green of the 
// else change back color of particular word to red in richtextbox1 

test = richtextbox2.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 

// find each word in test to richtextbox1 
// if it is found then change back color of particular word to green of the 
// else change back color of particular word to red in richtextbox2 

任何一个可以帮助我的代码我在语法有点差。的mateusz代码

IM服用参考

String[] test = richtextbox1.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 
String[] test2 = richtextbox2.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 

bool wordNotFound=false; 

for (int i=0;i<test.lenght;i++) 
for (int j=0;j<test2.length;j++){ 
    if (test[i].equals(test2[j])){ 
     wordNotFound=true 
      break; 
      } 
    else wordNotFound=true; 
    } 

////在这里,我需要改变特定的背单词的颜色不是整个ritchtextbox

if (wordNotFound) richTextBox1.BackColor = Color.Red; 
    else richTextBox1.BackColor = Color.Green; 

我不是比较两个文本框,即时通讯验证双方存在或不存在的每个单词。就像拼写检查词典一样richtextbox1。在richtextbox2中拼写检查[有效的单词]。反之亦然......

+0

即时验证每个存在于双方的单词。就像拼写检查词典一样richtextbox1。在richtextbox2中拼写检查[有效的单词]。反之亦然... – Siva

+0

[如何使用C#比较两个richtextbox文本](http:// stackoverflow。com/questions/6782195/how-to-compare-two-richtextbox-text-using-c-sharp) – 2012-12-12 13:29:17

+0

@ 0A0D其逐行比较我需要逐字比较 – Siva

回答

2
var validWords = new HashSet<string>(new string[] { "a","c","e" }); 
string[] wordsToCheck = new string[] { "a", "b", "c", "d", "e" }; 

var result = wordsToCheck.Select(w => new 
       { 
        Word = w, 
        IsValid = validWords.Contains(w) 
       }) 
       .ToList(); 

如果您只对所有单词是否有效感兴趣,您可以通过以下方式进行简单检查:

var isOK = wordsToCheck.All(w => validWords.Contains(w)); 

PS:当然,new string[]{} S的关系可以与rtb.Split(....) *

+1

非常感谢,这正是我正在寻找...... – Siva

-1

你可能每个字在TextBox1中有TextBox2中

for(int i = 0; i < stringarray1.length; i++) 
{ 
for(int j = 0; j < stringarray2.length; j++) 
{ 
    if(stringarray1[i] == stringarray2[j]) 
    // we have a match 
} 
} 
+0

实际上我没有比较两个文本框im验证每个单词这是存在于双方还是不存在。就像拼写检查词典一样richtextbox1。在richtextbox2中拼写检查[有效的单词]。反之亦然... – Siva

1

如果比较的话会以相同的顺序,为什么有分裂的所有烦恼呢? 如果这将是确定的,我会怎么做:

if (richtexbox1.text.equals(richtexbox1.text)){ 
richTextBox1.BackColor = Color.Green; 
} else { 
richTextBox1.BackColor = Color.Red; 
} 

如果没有,你想找到,如果这两个文本框中包含同一个词,但在不同的顺序,那么:

String[] test = richtextbox1.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 
    String[] test2 = richtextbox2.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 

    bool wordNotFound=false; 

    for (int i=0;i<test.lenght;i++) 
    for (int j=0;j<test2.length;j++){ 
     if (test[i].equals(test2[j])){ 
      wordNotFound=false; 
       break; 
       } 
     else wordNotFound=true; 
     } 

    if (wordNotFound) richTextBox1.BackColor = Color.Red; 
     else richTextBox1.BackColor = Color.Green; 
+1

在内部循环中应该是: wordNotFound = false; – Link

+0

这里特定的单词颜色没有改变它改变了整个richtextbox – Siva

0
String[] test = richtextbox1.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 
    String[] test2 = richtextbox2.text.Split(" ", StringSplitOptions.RemoveEmptyEntries); 

是给误差更换;

错误1的最好重载方法匹配 'string.Split(串[], System.StringSplitOptions)' 具有一些无效 参数C:\用户\ Saad的\文件\的Visual Studio 2012 \项目\ WindowsFormsApplication5 \ WindowsFormsApplication5 \ Form1.cs中60 29 WindowsFormsApplication5

错误2参数1:不能从 '字串' 转换为 '字符串[]' C:\用户\ Saad的\文件\的Visual Studio 2012 \项目\ WindowsFormsApplication5 \ WindowsFormsApplication5 \ Form1.cs 60 53 WindowsFormsApplication5