我已经想出了如何比较两个文本框,并计算每个单词中有多少单词相同,以及有多少单词是不同的,但我想知道,而不是显示具体是多少,以及如何我可以计算它们之间的差异百分比吗?计算唯一性的百分比
对于那些谁我糊涂了,如果我在这个职位又写了这整个消息,并改变了几句话,也许去掉了一些我能得到从程序告诉我差反馈为14%左右...
我已经想出了如何比较两个文本框,并计算每个单词中有多少单词相同,以及有多少单词是不同的,但我想知道,而不是显示具体是多少,以及如何我可以计算它们之间的差异百分比吗?计算唯一性的百分比
对于那些谁我糊涂了,如果我在这个职位又写了这整个消息,并改变了几句话,也许去掉了一些我能得到从程序告诉我差反馈为14%左右...
你可以得到的话:
String[] words1 = Textbox1.Text.Split();
String[] words2 = Textbox2.Text.Split();
您可以使用LINQ来比较两种:
var sameWordsInBoth = words1.Intersect(words2);
int count1 = sameWordsInBoth.Count();
var inTxt1ButNotInTxt2 = words1.Except(words2);
int count2 = inTxt1ButNotInTxt2.Count();
var inTxt2ButNotInTxt1 = words2.Except(words1);
int count3 = inTxt2ButNotInTxt1.Count();
为了让您只要有个统计总词(fe words1.Length
)并将其与其他计数进行比较。
例如:
double sameWordPercentage = (1.0 * count1/words1.Length) * 100;
'sameWordPercentage =(COUNT1/words1.Length)* 100;'将给出0(整数除法) –
@EVERYONE所以什么方式是正确的方式?我认为双百分比=(UniqueWordCount/TotalWordCount)* 100; ? – ace007
@ ace007:你见过我的回答吗?其中一个值必须是double,结果也是double,因此我使用了'1.0 * count1 ...'(1.0 * count1将int转换为double)。 –
既然你说你已经拥有的独特单词量,不需要对如何让他们解释:
double UniqueWordCount = 71;
double TotalWordCount = 231;
double Percentile = (UniqueWordCount/TotalWordCount)*100;
答:30.7359 ....%
如果你想详谈
Math.Round(Percentile,2)
答:30.74%,通过使用string.Split
也相同的情况下? –
当你说你有多少单词是相同的,你考虑到,他们位于两个给定的字符串内的位置? –