我在c#上做了一个回文程序。为了消除区分大小写,我必须将输入完全转换为较低(或较高)的情况。现在,当我打印反向阵列时,我希望区分大小写能够回来。如果输入= Madam,我希望Reverse为= madaM。现在我知道我可以从输入中创建一个新的char数组,而且我已经完成了。但我想以某种方式操纵LowerInvariant数组。我知道我的代码的Upper方法不起作用,因为数组被转换成小写。
using System;
using System.Linq;
public class Palindrome
{
public static void Main(string [] args)
{
string input = Console.ReadLine();
string lower = input.ToLowerInvariant();
char[] array = lower.ToCharArray();
Array.Reverse(array);
Upper(array, input);
Console.WriteLine("\nPalindrome: {0}", array.SequenceEqual(lower));
Console.ReadKey();
}
public static void Upper(char[] array, string input)
{
for (int i = 0; i < array.Length; i++)
{
if (Input's [i] char is Upper) => Not sure how to put this as a code.
array[i] = Char.ToUpper(array[i]);
}
Console.WriteLine("Reverse array :");
for (int i = 0; i < array.Length; i++)
Console.Write("{0}", array[i]);
}
}
答案 0 :(得分:3)
这应该做你想要的:
public static void Upper(char[] array, string input)
{
Console.WriteLine("Reverse array :");
Console.Write(new string(input.AsEnumerable().Reverse().ToArray()));
}
您可以简单地反转原始输入并从反转字符中创建一个新字符串,而不是担心小写数组。