description

# Runes class final

The runes (integer Unicode code points) of a String.

The characters of a string are encoded in UTF-16. Decoding UTF-16, which combines surrogate pairs, yields Unicode code points. Following a similar terminology to Go, Dart uses the name 'rune' for an integer representing a Unicode code point. Use the `runes` property to get the runes of a string.

Example:

    const string = 'Dart';
    final runes = string.runes.toList();
    print(runes); // [68, 97, 114, 116]

For a character outside the Basic Multilingual Plane (plane 0) that is composed of a surrogate pair, runes combines the pair and returns a single integer.

For example, the Unicode character for "Man" emoji ('👨', `U+1F468`) is combined from the surrogates `U+d83d` and `U+dc68`.

Example:

    const emojiMan = '👨';
    print(emojiMan.runes); // (128104)

    // Surrogate pairs:
    for (final item in emojiMan.codeUnits) {
      print(item.toRadixString(16));
      // d83d
      // dc68
    }

See also:

- Runes and grapheme clusters

Inheritance
  - Object
  - Iterable<int>
  - Runes

## Constructors

Runes(String string)
  Creates a Runes iterator for `string`.

## Properties

first → int
  The first element.
  no setterinherited
hashCode → int
  The hash code for this object.
  no setterinherited
isEmpty → bool
  Whether this collection has no elements.
  no setterinherited
isNotEmpty → bool
  Whether this collection has at least one element.
  no setterinherited
iterator → RuneIterator
  A new `Iterator` that allows iterating the elements of this `Iterable`.
  no setteroverride
last → int
  The last element.
  no setteroverride
length → int
  The number of elements in this Iterable.
  no setterinherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setterinherited
single → int
  Checks that this iterable has only one element, and returns that element.
  no setterinherited
string → String
  The string that this is the runes of.
  final

## Methods

any(bool test(int element)) → bool
  Checks whether any element of this iterable satisfies `test`.
  inherited
cast<R>() → Iterable<T>
  A view of this iterable as an iterable of `R` instances.
  inherited
contains(Object? element) → bool
  Whether the collection contains an element equal to `element`.
  inherited
elementAt(int index) → int
  Returns the `index`th element.
  inherited
every(bool test(int element)) → bool
  Checks whether every element of this iterable satisfies `test`.
  inherited
expand<T>(Iterable<T> toElements(int element)) → Iterable<T>
  Expands each element of this Iterable into zero or more elements.
  inherited
firstWhere(bool test(int element), {int orElse()?}) → int
  The first element that satisfies the given predicate `test`.
  inherited
fold<T>(T initialValue, T combine(T previousValue, int element)) → T
  Reduces a collection to a single value by iteratively combining each element of the collection with an existing value
  inherited
followedBy(Iterable<int> other) → Iterable<int>
  Creates the lazy concatenation of this iterable and `other`.
  inherited
forEach(void action(int element)) → void
  Invokes `action` on each element of this iterable in iteration order.
  inherited
join([String separator = ""]) → String
  Converts each element to a String and concatenates the strings.
  inherited
lastWhere(bool test(int element), {int orElse()?}) → int
  The last element that satisfies the given predicate `test`.
  inherited
map<T>(T toElement(int e)) → Iterable<T>
  The current elements of this iterable modified by `toElement`.
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
reduce(int combine(int exponent, int modulus)) → int
  Reduces a collection to a single value by iteratively combining elements of the collection using the provided function.
  inherited
singleWhere(bool test(int element), {int orElse()?}) → int
  The single element that satisfies `test`.
  inherited
skip(int count) → Iterable<int>
  Creates an Iterable that provides all but the first `count` elements.
  inherited
skipWhile(bool test(int element)) → Iterable<int>
  Creates an `Iterable` that skips leading elements while `test` is satisfied.
  inherited
take(int count) → Iterable<int>
  Creates a lazy iterable of the `count` first elements of this iterable.
  inherited
takeWhile(bool test(int element)) → Iterable<int>
  Creates a lazy iterable of the leading elements satisfying `test`.
  inherited
toList({bool growable = true}) → List<int>
  Creates a List containing the elements of this Iterable.
  inherited
toSet() → Set<int>
  Creates a Set containing the same elements as this iterable.
  inherited
toString() → String
  Returns a string representation of (some of) the elements of `this`.
  inherited
where(bool test(int element)) → Iterable<int>
  Creates a new lazy Iterable with all elements that satisfy the predicate `test`.
  inherited
whereType<T>() → Iterable<T>
  Creates a new lazy Iterable with all elements that have type `T`.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited