在C#中将Char数组转换为字符串[重复]

Posted

技术标签:

【中文标题】在C#中将Char数组转换为字符串[重复]【英文标题】:Convert Char Array to String in C# [duplicate] 【发布时间】:2021-05-03 22:37:20 【问题描述】:

我是编程新手,尤其是 C#,我想我会从简单的东西开始,比如文本反向器。我想我会更进一步,并使其成为回文检查器。问题是我似乎无法将数组转换回字符串以将其检查为原始输入。

string Inp = "1";  // user input

Console.WriteLine("Input a word to reverse"); // user inputs word
Inp = Convert.ToString(Console.ReadLine()); // input gets converted to string

char[] charArray = Inp.ToCharArray(); // converts char to array
Array.Reverse(charArray); // reverses array

if (Inp == charArray)  // compares user input to the array - does not work
    Console.WriteLine(Inp + " is a Palindrome"); // writes the input with text afterwards
 else 
    Console.WriteLine(Inp + " is not a palindrome");

我已经尝试过Convert.ToString 和其他版本的东西,但它似乎没有用。我尝试创建 new string = (charArray) 来创建一个也不起作用的新字符串 bur。 谢谢。

编辑:它给了我这个错误:

运算符'=='不能应用于'string'和'char[]'类型的操作数

还有,有点不相关,但是是不是注释太多了?我应该少做吗? 我是否正确地问了这个问题,还是我做错了什么而错过了?

【问题讨论】:

if (Inp.SequenceEqual(charArray)) // Palindrome else // no Palindrome ,顺便说一句,您不需要将字符串转换为字符串。 【参考方案1】:

我不明白你的问题是什么,这很有效:

代码:

using System;

namespace ConsoleApp1

    internal static class Program
    
        private static void Main()
        
            var chars = new[] 'a', 'b', 'c';
            var s = new string(chars);
            Console.WriteLine(s);
        
    

结果:

abc

对于您的比较问题,这里有一个更可靠的方法:

using System;

namespace ConsoleApp1

    internal static class Program
    
        private static void Main()
        
            var sourceChars = new[] 'a', 'b', 'c';
            var targetChars = new[] 'C', 'B', 'A';

            Array.Reverse(sourceChars);

            var sourceString = new string(sourceChars);
            var targetString = new string(targetChars);

            var isMatch = string.Equals(sourceString, targetString, StringComparison.OrdinalIgnoreCase);

            Console.WriteLine(isMatch);
        
    

结果:

是的

【讨论】:

以上是关于在C#中将Char数组转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在java中将字符串数组元素转换为字节数组[重复]

在 C# 中将 char 转换为 int

在c#/LINQ中将数组转换为字符串的最短方法[重复]

如何在 C++ 中将字符串转换为 char 数组?

如何在 C# 中将固定字节/字符 [100] 转换为托管字符 []?

如何在 C# 中将字符串转换为字节 []