如何将单个字符转换为字符串?
Posted
技术标签:
【中文标题】如何将单个字符转换为字符串?【英文标题】:How do I convert a single char to a string? 【发布时间】:2012-11-24 01:27:36 【问题描述】:我想枚举一个string
,而不是返回chars
,我想让迭代变量的类型为string
。这可能不可能让迭代类型成为string
,那么迭代这个字符串的最有效方法是什么?
我是否需要在循环的每次迭代中创建一个新的string
对象,或者我可以以某种方式执行转换?
String myString = "Hello, World";
foreach (Char c in myString)
// what I want to do in here is get a string representation of c
// but I can't cast expression of type 'char' to type 'string'
String cString = (String)c; // this will not compile
【问题讨论】:
【参考方案1】:使用 .ToString() 方法
String myString = "Hello, World";
foreach (Char c in myString)
String cString = c.ToString();
【讨论】:
考虑使用 C# 类型string
和 char
而不是 CLR 类型。最终相同,但可以说在 C# 中更正确。
@andleer 你说得对,我只是修改了 OP 的示例代码以显示 ToString 方法。
评论是针对他的,不是针对你的。不用担心。
@tom_mai78101,再次查看问题我想我在抱怨没有一个答案可以解释为什么将char
转换为string
不起作用或显然无法编译。
似乎可以,但是为什么我们不能直接使用内置的句法方式来进行显式转换呢?例如string s = (string) c
【参考方案2】:
你有两个选择。创建string
对象或调用ToString
方法。
String cString = c.ToString();
String cString2 = new String(c, 1); // second parameter indicates
// how many times it should be repeated
【讨论】:
【参考方案3】:使用 C# 6 插值:
char ch = 'A';
string s = $"ch";
这会减少几个字节。 :)
【讨论】:
【参考方案4】:似乎显而易见的事情是这样的:
String cString = c.ToString()
【讨论】:
【参考方案5】:从 char 创建一个新字符串。
String cString = new String(new char[] c );
或
String cString = c.ToString();
【讨论】:
【参考方案6】:创建扩展方法:
public static IEnumerable<string> GetCharsAsStrings(this string value)
return value.Select(c =>
//not good at all, but also a working variant
//return string.Concat(c);
return c.ToString();
);
并遍历字符串:
string s = "123456";
foreach (string c in s.GetCharsAsStrings())
//...
【讨论】:
【参考方案7】:String cString = c.ToString();
【讨论】:
【参考方案8】:你试过了吗:
String s = new String(new char[] 'c' );
【讨论】:
没有只需要 char 的 ctor【参考方案9】:为什么不是这段代码?不是更快吗?
string myString = "Hello, World";
foreach( char c in myString )
string cString = new string( c, 1 );
【讨论】:
【参考方案10】:可能无法将迭代类型设为字符串
没错:
foreach (string str in myString.Select(c => c.ToString())
...
其他答案中的任何建议都可以代替c.ToString()
。 c => new string(c, 1)
可能是最有效的一个小头发,这可能是 char.ToString()
在引擎盖下所做的。
【讨论】:
【参考方案11】:您可以使用 + 与空字符串""
,请检查以下代码:
char a = 'A';
//a_str is a string, the value of which is "A".
string a_str = ""+a;
【讨论】:
以上是关于如何将单个字符转换为字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何将切片字符串中的单个字符转换为 Python 中的整数?
如何将包含逗号分隔的 json 值的单个字符串转换为单个 json 对象?
如何将 UTF8 组合字符转换为 ruby 中的单个 UTF8 字符?