在Dart中是否有类似char At的方法?


String name = "Jack";  
char letter = name.charAt(0);    
System.out.println(letter);

这是一个java方法charAt通过告诉你字符串的索引,它给你一个字符串的字符。我要求在Dart中有这样的方法,Dart有这样的方法吗?

您可以使用String.operator[]

String name = "Jack";  
String letter = name[0];
print(letter);

请注意,这是在UTF-16代码单元上操作的,而不是在Unicode代码点或字形簇上操作。还要注意,Dart没有char类型,因此您最终将使用另一个String

如果您需要对任意Unicode字符串进行操作,那么您应该使用package:characters并执行:

String name = "Jack";  
Characters letter = name.characters.characterAt(0);
print(letter);

Dart有两个与Java行为匹配的操作,因为Java专门打印char类型的整数。

Dart有String.codeUnitAt,它的作用与Java的charAt相同:返回一个整数,表示字符串中该位置的UTF-16代码单元。如果你在Dart中打印它,或者把它加到StringBuffer上,它只是一个整数,所以print("Jack".codeUnitAt(0))打印74

其他操作是String.operator[],它返回一个单代码单元String。因此,print("Jack"[0])打印J

两者都应该谨慎使用,因为许多Unicode字符不仅仅是一个单独的代码单元。您可以使用String.runes来获取代码,或者使用String.characters从包characters中获取grapheme集群(这通常是您应该使用的,除非您碰巧知道文本仅为ASCII)

可以使用

String.substring(int startIndex, [ int endIndex ])

例子——

void main(){
String s = "hello";
print(s.substring(1, 2));
}

输出
e

请注意,endIndex比startIndex大1,并且返回的字符存在于startIndex中。

相关内容

  • 没有找到相关文章

最新更新