วิธีที่เหมาะสมในการเปลี่ยนchar[]
เป็นสตริงคืออะไร?
ToString()
วิธีจากอาร์เรย์ของตัวอักษรไม่ได้ทำเคล็ดลับที่
วิธีที่เหมาะสมในการเปลี่ยน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
ยอมรับเฉพาะstring[]
แทนchar[]
string.Join<char>("_", chars)
แทนstring.Join("_", chars)
String mystring = new String(mychararray);
ใช้ตัวสร้างสตริงที่ยอมรับ chararray เป็นอาร์กิวเมนต์เริ่มตำแหน่งและความยาวของอาร์เรย์ ไวยากรณ์ได้รับด้านล่าง:
string charToString = new string(CharArray, 0, CharArray.Count());
char[] charArray = new char[5] { 'a', 'b', 'c', '\0', '\0' }; string charsAsString = new string(charArray, 0, 3); // only want part of array.
ทางเลือกอื่น
char[] c = { 'R', 'o', 'c', 'k', '-', '&', '-', 'R', 'o', 'l', 'l' };
string s = String.Concat( c );
Debug.Assert( s.Equals( "Rock-&-Roll" ) );
new string(null)
อัตราผลตอบแทนString.Empty
และไม่null
! หากคุณต้องการเก็บไว้null
คุณสามารถสร้างวิธีการขยายstatic string ToStringSafe(this char[] buf) { return buf == null ? null : new string(buf); }
ได้