2010-08-27 52 views
87

Tôi biết chúng ta có thể sử dụng phương thức charAt() trong Java lấy một ký tự riêng lẻ trong một chuỗi bằng cách chỉ định vị trí của nó. Có một phương pháp tương đương trong C#?C# tương đương với charAt của Java()?

+0

Bạn đang tìm kiếm giải pháp chỉ hoạt động trên các chuỗi được bảo đảm không chứa bất kỳ ký tự Unicode không phải 16 bit nào? Hay bạn đang tìm kiếm một giải pháp hoạt động trên một chuỗi tùy ý? – hippietrail

Trả lời

149

Bạn có thể lập chỉ mục thành một chuỗi trong C# như một mảng và bạn nhận được ký tự ở chỉ mục đó.

Ví dụ:

Trong Java, bạn sẽ nói

str.charAt(8); 

Trong C#, bạn sẽ nói

str[8]; 
+1

Tôi nghĩ rằng nó nên được chỉ ra rằng str.Substring (8,1) hoạt động như một giải pháp, nhưng nó là chậm hơn nhiều. Chỉ phát hiện ra điều đó một cách khó khăn. – qzcx

+0

Điều này đã cứu mạng sống của tôi: D Cảm ơn rất nhiều! –

+0

'str [8];' trả về mã char dưới dạng 'int32' không phải là' char' –

-1

Console.WriteLine cho phép người dùng để xác định một vị trí trong một chuỗi.

Xem mẫu:

chuỗi str = "Tigger"; Console.WriteLine (str [0]); // trả về "T"; Console.WriteLine (str [2]); // trả về "g";

Có bạn đi!

+9

chủ đề này, và câu trả lời của bạn, không liên quan gì đến WriteLine ... – Jonathan

-1

hãy cố gắng làm cho nó như là một nhân vật

string str = "Tigger"; 
//then str[0] will return 'T' not "T" 
1

bạn có thể sử dụng LINQ

string abc = "abc"; 
char getresult = abc.Where((item, index) => index == 2).Single(); 
-1

Đơn giản chỉ cần sử dụng String.ElementAt(). Nó khá giống với java String.charAt(). Vui chơi mã hóa!

+0

Tại sao bạn sử dụng một phương pháp mở rộng IEnumerable, khi nào bạn có thể làm những gì người khác đã đề cập từ nhiều năm trước? (Xây dựng chuỗi chỉ mục). –

Các vấn đề liên quan