C\#문자열 자체 감소 알고리즘 상세 설명

4493 단어 C#문자열늘다
C\#문자열 자체 증가 와 자체 감소 연산 을 실현 합 니 다.참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
1.숫자 는 0-9 에서 변화 한다.
2.알파벳 은 A-Z,a-z 에서 변화 한다.
3.다른 문자 건 너 뛰 기;
4.상기 변 화 는 Ascii 코드 값 에 따른다.

/// <summary>
 ///      
 /// </summary>
 public class StringOperation
 {


  /// <summary>
  ///   ASCII  ,      1
  /// </summary>
  /// <param name="pStr">     </param>
  /// <returns></returns>
  public static string StringIncreaseOne(string pStr)
  {
   var vRetStr = pStr;
   if (0 == pStr.Length)
   {
    vRetStr = "1";
   }
   else
   {
    //                 
    string vOtherStr = pStr.Substring(0, pStr.Length - 1);
    int vIntChar = (int)pStr[pStr.Length - 1]; // ASCII  
    if (48 <= vIntChar && vIntChar <= 57) //   (0 - 9)
    {
     vIntChar++; //  1
     if (vIntChar == 58) //    
     {
      vIntChar = 48;
      vOtherStr = StringIncreaseOne(vOtherStr);
     }
    }
    else if (65 <= vIntChar && vIntChar <= 90) //   (A - Z)
    {
     vIntChar++; //  1
     if (vIntChar == 91) 
     {
      vIntChar = 65;
      vOtherStr = StringIncreaseOne(vOtherStr);
     }
    }
    else if (97 <= vIntChar && vIntChar <= 122) //   (a - z)
    {
     vIntChar++; //  1
     if (vIntChar == 123)
     {
      vIntChar = 97;
      vOtherStr = StringIncreaseOne(vOtherStr); 
     }
    }
    else //      ->   
    {
     vOtherStr = StringIncreaseOne(vOtherStr);
    }
    vRetStr = vOtherStr + (char)vIntChar;
   }
   return vRetStr;
  }

  /// <summary>
  ///   ASCII  ,      1
  /// </summary>
  /// <param name="pStr">     </param>
  /// <returns></returns>
  public static string StringReducingOne(string pStr)
  {
   var vRetStr = pStr;
   if (0 == pStr.Length)
   {
    vRetStr = "9";
   }
   else
   {
    string vOtherStr = pStr.Substring(0, pStr.Length - 1);
    int vIntChar = (int)pStr[pStr.Length - 1]; // ASCII  
    if (48 <= vIntChar && vIntChar <= 57) //   (0 - 9)
    {
     vIntChar--;
     if (vIntChar == 47)
     {
      vIntChar = 57;
      vOtherStr = StringReducingOne(vOtherStr);
     }
    }
    else if (65 <= vIntChar && vIntChar <= 90) //   (A - Z)
    {
     vIntChar--; 
     if (vIntChar == 64)
     {
      vIntChar = 90;
      vOtherStr = StringReducingOne(vOtherStr);
     }
    }
    else if (97 <= vIntChar && vIntChar <= 122) //   (a - z)
    {
     vIntChar--;
     if (vIntChar == 96)
     {
      vIntChar = 122;
      vOtherStr = StringReducingOne(vOtherStr);
     }
    }
    else //      ->   
    {
     vOtherStr = StringReducingOne(vOtherStr);
    }
    vRetStr = vOtherStr + (char)vIntChar;
   }
   return vRetStr;
  }

  /// <summary>
  ///   ASCII  ,      
  /// </summary>
  /// <param name="pStr">     </param>
  /// <param name="pCount">    </param>
  /// <returns></returns>
  public static string StringIncrease(string pStr, int pCount)
  {
   string vRetStr = pStr;
   for (int i = 0; i < pCount; i++)
   {
    vRetStr = StringIncreaseOne(vRetStr);
   }
   return vRetStr;
  }

  /// <summary>
  ///   ASCII  ,      
  /// </summary>
  /// <param name="pStr">     </param>
  /// <param name="pCount">    </param>
  /// <returns></returns>
  public static string StringReducing(string pStr, int pCount)
  {
   string vRetStr = pStr;
   for (int i = 0; i < pCount; i++)
   {
    vRetStr = StringReducingOne(vRetStr);
   }   
   return vRetStr;
  }
  


 }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기