日期:2014-05-17  浏览次数:20921 次

C#字符串去重复问题,新手求助
现在遇到这一问题,如果两个字符串中,有连续相同的4个字,那么就返回true。
  例
   
  strone="天成软件公司";
  strthree="中国山东变压器厂";
  strtwo="北京天成软件技术有限责任公司";
  strfour="河北变压器厂";

  strone 和strtwo都有"天成软件"这四个字。返回true
  strthree和strfour都有"变压器厂"这四个字,返回true

  我现在写个一个方法可是出错了。希望大家指教
  public static Boolean UniqueValue(String strone,String strtwo)
  {
  String str = strone;
  String stronezi="";
  for (int i = 0; i < strone.Length-4;i++ )
  {  
   
  stronezi=strone.Substring(i,i+4); //得出第一个字符串的四个字符
  if (strtwo.Contains(stronezi)) //比较
  {
  return true;
  }
   
  }
  return false;
  }
   
   
   
   



------解决方案--------------------
修改如下
C# code
public static Boolean UniqueValue(String strone, String strtwo)
            {
                String str = strone;
                String stronezi = "";
                for (int i = 0; i <= strone.Length - 4; i++)
                {
                    stronezi = strone.Substring(i, 4); //得出第一个字符串的四个字符
                    if (strtwo.Contains(stronezi)) //比较
                    {
                        return true;
                    }

                }
                return false;
            }

------解决方案--------------------
代码已经写过,你测试一下看看,我觉得你对Substring方法的重载在理解上有一些误区,第二个参数是要截取的固定长度,而不是结束位置