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;
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.