如何使用c#编写程序来检查单词是否是回文?

时间:2015-06-16 10:54:55

标签: c# visual-studio cmd

所以我正在尝试制作一个程序(基于文本),可以扫描你输入的单词,看看它是否是回文,所以只是一个真或假的结果我是c#的初学者所以请帮忙我出去了! 到目前为止,这就是我所做的一切。

//Name space
namespace PalindromeChecker
{
    //Class
    class Program
    {
        //Function
        static void Main(string[] args)
        {
            Console.WriteLine("Type the word");
            ConsoleKeyInfo Keyinfo = Console.Readkey();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

回文是一系列字符,无论是向前阅读还是反向阅读都是相同的。因此,为了确定字符串是否是回文,我们可以将字符串与其反向进行比较,它是一个。

那你怎么能创建一个字符串的反转?如果您查看String定义,您会看到它实现了IEnumerable。现在System.Linq命名空间提供了IEnumerable.Reverse方法。这可用于反转字符串:

var str = "oxo";
var reversed = str.Reverse();

但是,这将返回char的枚举,而不是字符串。因此需要string.Concat才能将reversed转换为字符串。完成后,我们现在有:

var str = "oxo";
var reversed = string.Concat(str.Reverse());

要测试它们是否相同,只需比较它们:

if (str == reversed)
{
    // we have a palindrome
}

“这里有一个问题,如果strnull,你将获得str.Reverse的空异常。这可以通过空检查来处理。所以我们可以简化整个事情归结为:

if (str != null && str == string.Concat(str.Reverse()))
{
    // we have a palindrome

答案 1 :(得分:-1)

 string word = "hi"; ;
                char[] wordArray = word.ToCharArray();
                char[] revWordArray = wordArray.Reverse().ToArray();
                int count = 0;
                for (int i1 = 0; i1 < wordArray.Length; i1++)
                {
                    if (wordArray[i1] == revWordArray[i1])
                    {
                        count++;
                    }

                }
                if (count == wordArray.Length)
                {
                    bool a = true;
                }