@Michael: Ada kesalahan kompiler. Bagaimana Anda bisa menggunakan ToCharArray jika tidak dengan cara ini?
Craig Johnston
3
Sebagai catatan, ToCharArrayadalah metode , Anda harus menjalankannya terlebih dahulu, misalnya char[] chars = str.ToCharArray();, dan kemudian gunakan char first = chars[0];. Anda juga bisa memotongnya str.ToCharArray()[0];. Apa pun itu, pastikan Anda memeriksa string bukan nol dan memiliki setidaknya satu karakter - Anda dapat melakukannya menggunakan if(!String.IsNullOrEmpty(str)).
Kobi
1
Craig .. penggunaan ToCharArray salah. Lihat jawaban saya.
Nayan
4
Apakah Anda menginginkan karakter pertama charatau karakter pertama ? Jika Anda mencoba ini dan tampaknya berhasil, coba lagi dengan 𣊾atau 𣇞, yang keduanya gagal dalam program yang saya gunakan yang ditulis dalam C # dengan bug yang tepat ini.
hippietrail
Jawaban:
382
Adil MyString[0]. Ini menggunakan pengindeks String.Chars .
Perbedaan antara jawaban ini dan yang dipilih adalah bahwa solusi ini mengembalikan string, dan yang lainnya mengembalikan char.
Loïc Lopes
char hanya mendapatkan satu karakter tetapi solusi saya dapat menghasilkan lebih dari satu jika Anda mau.
Sanjay Kumaar
1
Itu hanya presisi karena jenisnya dapat menjadi penting menurut apa yang ingin Anda lakukan dengannya.
Loïc Lopes
18
Perbedaan antara MyString[0]dan MyString.ToCharArray()[0]adalah bahwa yang pertama memperlakukan string sebagai array hanya-baca, sementara ToCharArray()membuat array baru. Yang pertama akan lebih cepat (bersama dengan lebih mudah) untuk hampir semua hal di mana ia akan bekerja, tetapi ToCharArraydapat diperlukan jika Anda memiliki metode yang perlu menerima array, atau jika Anda ingin mengubah array.
Jika string tidak diketahui non-null dan non-kosong, Anda dapat melakukannya:
Yang benar adalah MyString [posisi karakter]. Untuk kasus Anda MyString [0], 0 adalah karakter PERTAMA dari string apa pun.
Nilai karakter ditandai dengan '(kutipan tunggal), seperti ini x nilai karakter ditulis sebagai' x '.
Nilai string ditandai dengan "(kutipan ganda), seperti nilai x string ini ditulis sebagai" x ".
Jadi metode Substring () juga tidak mengembalikan karakter, metode Substring () mengembalikan string !!!
String adalah larik karakter, dan karakter terakhir harus karakter '\ 0' (null). Itulah perbedaan antara array karakter dan string (yang merupakan array karakter dengan karakter terakhir sebagai "penanda ujung string" '\ 0' nol.
Dan perhatikan juga bahwa 'x' TIDAK SAMA dengan "x". Karena "x" sebenarnya 'x' + '\ 0'.
ToCharArray
adalah metode , Anda harus menjalankannya terlebih dahulu, misalnyachar[] chars = str.ToCharArray();
, dan kemudian gunakanchar first = chars[0];
. Anda juga bisa memotongnyastr.ToCharArray()[0];
. Apa pun itu, pastikan Anda memeriksa string bukan nol dan memiliki setidaknya satu karakter - Anda dapat melakukannya menggunakanif(!String.IsNullOrEmpty(str))
.char
atau karakter pertama ? Jika Anda mencoba ini dan tampaknya berhasil, coba lagi dengan𣊾
atau𣇞
, yang keduanya gagal dalam program yang saya gunakan yang ditulis dalam C # dengan bug yang tepat ini.Jawaban:
Adil
MyString[0]
. Ini menggunakan pengindeks String.Chars .sumber
Mystring[0]
Seharusnya cukupsumber
Coba ini,
string s1="good"; string s=s1.Substring(0,1);
sumber
Perbedaan antara
MyString[0]
danMyString.ToCharArray()[0]
adalah bahwa yang pertama memperlakukan string sebagai array hanya-baca, sementaraToCharArray()
membuat array baru. Yang pertama akan lebih cepat (bersama dengan lebih mudah) untuk hampir semua hal di mana ia akan bekerja, tetapiToCharArray
dapat diperlukan jika Anda memiliki metode yang perlu menerima array, atau jika Anda ingin mengubah array.Jika string tidak diketahui non-null dan non-kosong, Anda dapat melakukannya:
yang mengembalikan karakter
char?
nol atau karakter pertama dalam string, yang sesuai.sumber
char?
sebagai cara untuk memasukkan kemungkinan "tidak ada karakter pertama".Anda bisa menggunakan LINQ
Itu akan sama dengan
'\0'
jika string kosong.sumber
Atau Anda dapat melakukan ini:
sumber
Hanya pendekatan lain:
sumber
Saya pikir Anda sedang mencari ini
MyString.ToCharArray()[0]
:)
Tapi Anda juga bisa menggunakannya
MyString[0]
.sumber
MyString.Remove (1, 2); juga berfungsi
sumber
Contoh berikut untuk mendapatkan karakter pertama dari string mungkin dapat membantu seseorang
sumber
Jawaban untuk pertanyaan Anda adalah TIDAK.
Yang benar adalah MyString [posisi karakter]. Untuk kasus Anda MyString [0], 0 adalah karakter PERTAMA dari string apa pun.
Nilai karakter ditandai dengan '(kutipan tunggal), seperti ini x nilai karakter ditulis sebagai' x '.
Nilai string ditandai dengan "(kutipan ganda), seperti nilai x string ini ditulis sebagai" x ".
Jadi metode Substring () juga tidak mengembalikan karakter, metode Substring () mengembalikan string !!!
String adalah larik karakter, dan karakter terakhir harus karakter '\ 0' (null). Itulah perbedaan antara array karakter dan string (yang merupakan array karakter dengan karakter terakhir sebagai "penanda ujung string" '\ 0' nol.
Dan perhatikan juga bahwa 'x' TIDAK SAMA dengan "x". Karena "x" sebenarnya 'x' + '\ 0'.
sumber
Di C # 8 Anda dapat menggunakan rentang.
Tambahkan
?
setelahmyString
untuk menanganinull
string.sumber
mendapatkan char dari sebuah string dapat bergantung pada enconding (string default adalah UTF-16)
https://stackoverflow.com/a/32141891
sumber