如何识别字符串中的等价?

时间:2017-05-24 16:15:31

标签: c# comparison

如何在字符串之间找到等效(不相等)值?

//Equivalent Values
string A = "Beneficiation Return";
string B = "Return Beneficiation";
string C = "Beneficiation From Return";
string D = "Return From Beneficiation";

如果我使用

if(A == B)//Equal

它只会比较Equal字符串,它们是等价但不相等的,有没有办法验证等价?

  

等价可以是:混洗的单词,有或没有链接单词(Just   五:For,To,In,From,At。)或被洗牌并连接单词

代码会导致:

("Beneficiation Return" == "Return Beneficiation")True
("Beneficiation From Return" == "Return Beneficiation")True
("Return Beneficiation" == "Return From  Beneficiation")True

2 个答案:

答案 0 :(得分:0)

您可以创建一个辅助函数:equivalentStrings同时接受A和B.在该函数中,您可以执行以下操作:

  1. 拆分字符串A和B,并获得两个单词数组
  2. 检查他们是否有相同的单词数(如果没有,则返回false)
  3. 如果arrayB中有相同的单词,请检查arrayA中的每个单词,如果是,则删除两个数组中的单词,如果不返回false
  4. 如果arrayA为空(删除了所有单词),则返回true。

答案 1 :(得分:0)

我认为这就是你要找的......

string a = "Beneficiation Return";
string b = "Return Beneficiation";
string c = "Beneficiation From Return";
string d = "Return From Beneficiation";

bool isSame = !a.Except(b).Any() && !b.Except(a).Any();

bool isSame将返回true,因为字符串a& b包含相同的字符。 将ac进行比较,它将返回false