在 C# 中检查回文字符串
本教程将介绍在 C# 中检查字符串是否为回文字符串的方法。
使用 C# 中的 String.Substring()
方法检查回文字符串
如果向前和向后读取相同的字符串,则该字符串被视为回文。不幸的是,在 C# 中没有内置的方法来检查字符串是否是回文。但是我们可以使用 String.Substring()
方法从中间拆分字符串以得到前半部分。通过将字符串转换为字符数组,使用 Array.Reverse()
方法反转字符序列,将反向数组转换为字符串,然后从中间使用 String.Substring()
方法。如果前一半等于后一半的倒数,则该字符串为回文。如果前半部分不等于后半部分,则该字符串不是回文。以下代码示例向我们展示了如何使用 C# 中的 String.Substring()
方法来检查字符串是否是回文。
using System;
using System.Linq;
namespace palindrome {
class Program {
public static bool checkPalindrome(string mainString) {
string firstHalf = mainString.Substring(0, mainString.Length / 2);
char[] arr = mainString.ToCharArray();
Array.Reverse(arr);
string temp = new string(arr);
string secondHalf = temp.Substring(0, temp.Length / 2);
return firstHalf.Equals(secondHalf);
}
static void Main(string[] args) {
bool palindrome = checkPalindrome("12321");
Console.WriteLine(palindrome);
}
}
}
输出:
True
在上面的代码中,我们使用 C# 中的 String.Substring()
方法检查了字符串 12321
是否是回文。
在 C# 中使用 LINQ 方法检查回文字符串
LINQ 中的 SequenceEqual()
方法比较 C# 中的两个元素序列。LINQ 中的 Reverse()
方法可反转 C# 中序列的元素。我们可以使用 Reverse()
方法来反转我们的字符串,并使用 SequenceEqual()
方法将其与原始字符串进行比较。下面的代码示例向我们展示了如何使用 C# 中的 LINQ 方法检查字符串是否是回文。
using System;
using System.Linq;
namespace palindrome {
class Program {
public static bool checkPalindrome2(string mainString) {
return mainString.SequenceEqual(mainString.Reverse());
}
static void Main(string[] args) {
bool palindrome = checkPalindrome2("12321");
Console.WriteLine(palindrome);
}
}
}
输出:
True
在上面的代码中,我们使用 C# 中的 SequenceEqual()
和 Reverse()
方法检查了字符串 12321
是否是回文。与以前的方法相比,此方法更为可取,因为它更加简单。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn