C# - 如何将字符串转换为字符?

40

我是C#的初学者,想要知道如何将字符串转换为字符,特别是将 string[] 转换为 char[]。我尝试使用 ToCharArray(),但是出现了错误,显示该方法不存在。使用 Convert.ToChar(<char here>) 时,我得到了一个错误,显示:

无法从 "char" 转换为 "System.Array"


你想要一个字符数组的数组还是一个包含所有字符的单一数组? - OneCricketeer
1
你不能使用stringValue.ToCharArray();string[]数组转换为char[]数组。 - Syed Qasim Ahmed
3
可能重复的问题 https://dev59.com/J1LTa4cB1Zd3GeqPZU83将单词转换为字符数组。 - Syed Qasim Ahmed
Convert.ToChar() 不会对 System.Array 抱怨。请在发布时准确无误,这样不清楚会浪费大家的时间。 - H H
1
另外,你甚至可能不需要这个,你可以使用someString[i]来获取字符。 - H H
8个回答

62

使用:

string str = "Hello";
char[] characters = str.ToCharArray();

如果您有一个单字符字符串,也可以尝试

string str = "A";
char character = char.Parse(str);

//OR 
string str = "A";
char character = str.ToCharArray()[0];

15
如果你想从一个字符串中获取单个字符,无论是作为字符串本身还是字符形式,通常最简单、最快捷和最直观的方法就是通过其索引位置直接解除字符串的引用。例如(参考上面的代码):char character = str[0]; - NetXpert
2023年仍然具有相关性。谢谢! - priyamtheone

9

对于一个单独的字符串,应该使用String.ToCharArray

string str = "One";
var charArray = str.ToCharArray();

对于一个字符串数组

string[] arrayStrings = { "One", "Two", "Three" };
var charArrayList = arrayStrings.Select(str => str.ToCharArray()).ToList();

对于来自单个字符串的单个字符

string str = "One";
var ch = str[0]; // means 'O'

4

通过调用 ToCharArray 方法,可以将字符串转换为字符数组。

var characters = stringValue.ToCharArray();

string[]类型的对象不是一个字符串,而是一个字符串数组。你不能仅仅通过调用像ToCharArray这样的方法来将字符串数组转换为字符数组。更正确地说,在.NET框架中没有任何可以实现这个功能的方法。不过你可以声明一个扩展方法来完成这个任务,但这是另一个讨论话题。

如果你的目的是构建由数组中每个字符串组成的字符数组,你可以通过在数组中的每个字符串上调用ToCharArray方法来实现。


奇怪的是,我正在跟随的教程中有一个人使用char <name> = <stringValue>.ToCharArray()将字符串数组转换为字符数组。但由于某种原因,Visual Studio甚至不会将"ToCharArray"列为可能的方法。 - enricogp
请问您能分享一下这个教程的链接吗?谢谢。 - Christos

1
char[] myChar = theString.ToCharArray();

无法工作,Visual Studio甚至不会将其显示为可能的方法。就像“toCharArray”不存在一样,但实际上它确实存在。 - enricogp

1
string[] array = {"USA", "ITLY"};
char[] element1 = array[0].ToCharArray();
// Now for element no 2
char[] element2 = array[1].ToCharArray();

1
您的问题有些不清楚,但我认为您想要使用以下代码(需要using System.Linq;):
var result = yourArrayOfStrings.SelectMany(s => s).ToArray();

另一个解决方案是:

var result = string.Concat(yourArrayOfStrings).ToCharArray();

0
var theString = "1234";
char[] myChar = theString.ToCharArray();

我在 Visual Studio 9999 的 C# 交互窗口中测试了这个,并得到了以下结果:
char[4] { '1', '2', '3', '4' }

0
var theString = "TEST";
char[] myChar = theString.ToCharArray();

我在 Visual Studio 2019 的 C# 交互式窗口中进行了测试,结果如下:
char[4] { 'T', 'E', 'S', 'T' }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接