如何将char[]
正确转换为字符串?
ToString()
方法无法完成从字符数组到字符串的转换。
这里有一个与此相关的构造函数:构造函数:
char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = new string(chars);
char[] c = ...;
string s = new string(c);
char[] characters;
...
string s = new string(characters);
另一种方法:
char[] chars = {'a', ' ', 's', 't', 'r', 'i', 'n', 'g'};
string s = string.Join("", chars);
//we get "a string"
// or for fun:
string s = string.Join("_", chars);
//we get "a_ _s_t_r_i_n_g"
string.Join
only accepts string[]
instead of char[]
- sky91string.Join<char>("_", chars)
而不是 string.Join("_", chars)
。 - sky91另一个选择
char[] c = { 'R', 'o', 'c', 'k', '-', '&', '-', 'R', 'o', 'l', 'l' };
string s = String.Concat( c );
Debug.Assert( s.Equals( "Rock-&-Roll" ) );
String.Concat
很好用,因为它接受 IEnumerable<char>
作为参数,所以在使用 LINQ 时我们不必调用 ToArray()
。 - Fábio BatistaString mystring = new String(mychararray);
string stringFromArray = new string(charArray, 0, charArray.Length);
char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // 只想要数组的一部分。
- Suncat2000String.Join(string separator, char[] charArray)函数可以将指定数组的元素或集合的成员使用指定的分隔符连接起来:
char[] c = { 'A', ' ', 'B', ' ', 'C', '&', 'D'};
string stringResult = string.Join("", c); //A B C&D
new string(null)
的结果是String.Empty
而不是null
!如果你想保留null
,可以使用扩展方法static string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }
。 - SkodPath.GetInvalidFileNameChars()
适用吗? - Kiquenet