所以我正在尝试制作一个程序(基于文本),可以扫描你输入的单词,看看它是否是回文,所以只是一个真或假的结果我是c#的初学者所以请帮忙我出去了! 到目前为止,这就是我所做的一切。
//Name space
namespace PalindromeChecker
{
//Class
class Program
{
//Function
static void Main(string[] args)
{
Console.WriteLine("Type the word");
ConsoleKeyInfo Keyinfo = Console.Readkey();
}
}
}
答案 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
}
“这里有一个问题,如果str
是null
,你将获得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;
}