C#——扩展.NET Framework基本类型的功能DEMO

问题描述 

 编写一个静态类MyExtensions,扩展.NET Framework基本类型的功能。

1)定义一个扩展方法IsPalindrome,方法定义为:

public static bool IsPalindrome(this string str)

它扩展string类的功能,用于判断字符串是否为回文(指顺读和倒读内容都一样的文本)。

2)定义一个扩展方法ReverseDigits,允许int将自己的值倒置,例如将整型1234调用ReverseDigits,返回结果为4321。

测试类如下:

class Program
{
    static void Main()
    {
            string s = "abc";
            Console.WriteLine($"'{s}' is {(s.IsPalindrome() ? "" : "not")} palindrome");
            s = "abcba";
            Console.WriteLine($"'{s}' is {(s.IsPalindrome() ? "" : "not")} palindrome");
            int i = 1234;
            Console.WriteLine($"Reverse of {i} is {i.ReverseDigits()}");
    }
}

源代码 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Homework7
{
    /**
     编写一个静态类MyExtensions,扩展.NET Framework基本类型的功能。
    1)定义一个扩展方法IsPalindrome,方法定义为:
        public static bool IsPalindrome(this string str)
    它扩展string类的功能,用于判断字符串是否为回文(指顺读和倒读内容都一样的文本)。
    2)定义一个扩展方法ReverseDigits,允许int将自己的值倒置,例如将整型1234调用ReverseDigits,返回结果为4321。
    */
    static class MyExtensions {
        public static Boolean IsPalindrome(this string str) {
                for (int i = 0; i < (str.Length / 2); i++) //只需要判断前一半(len/2)长度就好了
                {
                    if (str[i] != str[str.Length - 1 - i]) //判断是否为回文数;
                    {
                        return false;
                    }
                }
                return true;
        }

        //本方法允许任何整型返回倒置的副本,例如将整型1234调用ReverseDigits,返回结果为4321。 
        public static int ReverseDigits(this int i)
        {
            //把int 翻译为string 然后获取所有字符    
            char[] digits = i.ToString().ToCharArray();

            //反转数组中的项    
            Array.Reverse(digits);

            //放回string    
            string newDigits = new string(digits);

            //最后以int返回修改后的字符串    
            return int.Parse(newDigits);
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            string s = "abc";
            Console.WriteLine($"'{s}' is {(s.IsPalindrome() ? "" : "not")} palindrome");
            s = "abcba";
            Console.WriteLine($"'{s}' is {(s.IsPalindrome() ? "" : "not")} palindrome");
            int i = 1234;
            Console.WriteLine($"Reverse of {i} is {i.ReverseDigits()}");
        }
    }
}

运行结果

参考文章

http://bbs.bccn.net/thread-463732-1-1.html

https://shentuzhigang.blog.csdn.net/article/details/89713050

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页