C#中与Java的charAt()等效的方法是什么?

141

我知道在Java中我们可以使用charAt()方法通过指定位置获取字符串中的单个字符。那么在C#中有没有类似的方法呢?


你是在寻找只适用于不包含任何非16位Unicode字符的字符串的解决方案吗?还是你在寻找一个适用于任意字符串的解决方案? - hippietrail
7个回答

243
你可以像访问数组一样在C#中索引字符串,从而获取该索引处的字符。
示例:
在Java中,你可以这样说:
str.charAt(8);

在C#中,你会说

str[8];

2
我认为应该指出,str.Substring(8,1)虽然可以解决问题,但速度要慢得多。我刚刚吃了亏才发现这一点。 - qzcx

23

1
在C#中,字符串必须是静态的,才能这样声明:

str[8];


0

你可以使用LINQ

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

-1

请尝试将其转换为字符。

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

-3

Console.WriteLine 允许用户指定字符串中的位置。

请见下面的示例代码:

string str = "Tigger";
Console.WriteLine( str[0] ); //returns "T";
Console.WriteLine( str[2] ); //returns "g";

你做到了!


-4

只需使用 String.ElementAt()。它与Java的 String.charAt()非常相似。编码愉快!


为什么要使用IEnumerable扩展方法,当你可以像其他人多年前提到的那样做呢?(内置字符串索引) - Dave Doknjas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接