有这样一个字符串,00A,希望通过程序使其自动递增,其规律如下:00A、00B、00C、......00Z、01A、......99Z,怎么样通过C#程序实现啊,各位帮个忙,给看看!谢谢啊!!!

解决方案 »

  1.   

    比如这样:    public class NumChar
        {
            private int _numPart = 0;
            private int _charPart = 0;
            private const char _charStart = 'A';        public NumChar(int num, char c)
            {
                _numPart = num;
                _charPart = c-_charStart;
            }        public void AddOne()
            {
                _charPart = (_charPart + 1) % 26;
                _numPart += (_charPart == 0) ? 1 : 0;
            }        public override string ToString()
            {
                return _numPart.ToString("00") + (char)(_charStart + _charPart);
            }
        }
      

  2.   

    不明白,按理说,应该是
    这样啊,000~009,00A,00B~00Z
    然后
    010~009,01A,01B~01Z
    ZZ0~ZZ9,ZZA,ZZB~ZZZ这样才对啊,
    如果是这样的话,你直接定义一个public class CustomNumber
    {
    private int value = 0;
    public void SetValue( int value )
    {
    this.value = value;
    }
    public void SetValue( CustomNumber a )
    {
    this.value = a.value;
    }
    public static CustomNumber operator ++( CustomNumber a )
    {
    a.value++;
    return a;
    }
    public static CustomNumber operator --( CustomNumber a )
    {
    a.value--;
    return a;
    }
    public override string ToString()
    {
    StringBuilder sb = new StringBuilder();
    for( int a = value; a > 0; )
    {
    int b = a % 36;
    if( b > 9 )
    sb.Insert( 0, ( char )( 55 + b ) );
    else
    sb.Insert( 0, b.ToString() );
    a /= 36;
    } return sb.ToString();
    }
    }用例:
    CustomNumber b = new CustomNumber();
    Console.WriteLine( "0=" + b );  // 等于 0b.SetValue( 10 );
    Console.WriteLine( "10=" + b ); // 等于 Ab++;
    Console.WriteLine( "11=" + b ); // 等于 Bb.SetValue( 1000 );
    Console.WriteLine( "1000=" + b );// 等于 RS