string_splitter 1.0.0+1 copy "string_splitter: ^1.0.0+1" to clipboard
string_splitter: ^1.0.0+1 copied to clipboard

Utility classes for splitting strings and files into parts. Supports streamed parsing for handling long strings and large files.

string_splitter #

Utility classes for splitting strings and files into parts. Supports streamed parsing for handling long strings and large files.

Usage #

string_splitter has 2 libraries: [string_splitter] for parsing strings, and [string_splitter_io] for parsing files.

string_splitter #

import 'package:string_splitter/string_splitter.dart';

[StringSplitter] is a utility class with 3 methods: [split], [stream], and [chunk].

[split] and [stream] accept [splitters], which defines the character(s) to split the strings at, and [delimiters], which can be provided as a list of [String]s and/or [Delimiter]s, to denote blocks of text which shouldn't be parsed for [splitters].

split #

[split] synchronously splits the provided string at the provided[splitters] and returns a List<String> containing the split parts.

Note: [trimParts] can be set to true to trim the whitespace around the returned parts.

final string = '1, 2, 3, 4, 5, <6, 7, 8>, 9, 10';

final stringParts = StringSplitter.split(
  string,
  splitters: [','],
  delimiters: [Delimiter('<', '>')],
  trimParts: true,
);

print(stringParts); // ['1', '2', '3', '4', '5', '<6, 7, 8>', '9', '10']

[split] can alternatively be used as an extension method on [String].

final string = '1, 2, 3, 4, 5, <6, 7, 8>, 9, 10';

final stringParts = string.split(
  splitters: [','],
  delimiters: [Delimiter('<', '>')],
  trimParts: true,
);

print(stringParts); // ['1', '2', '3', '4', '5', '<6, 7, 8>', '9', '10']

stream #

[stream] is intended for handling long strings; it splits the provided string into chunks, streaming the resulting List<String>s as each chunk is parsed.

[chunkSize] must be provided, which defines the number of characters to limit each chunk to.

final stream = StringSplitter.stream(
  string,
  chunkSize: 1000,
  splitters: [','],
  delimiters: [r'\'],
);

await for (List<String> parts in stream) {
  print(parts);
}

[stream] can alternatively be used as an extension method on [String], referenced as [splitStream].

final stream = string.splitStream(
  chunkSize: 1000,
  splitters: [','],
  delimiters: [r'\'],
);

await for (List<String> parts in stream) {
  print(parts);
}

chunk #

[chunk] splits strings into chunks of a defined length, returned as a List<String>.

final chunks = StringSplitter.chunk(string, 1000);

[chunk] can alternatively be used as an extension method on [String].

final chunks = string.chunk(1000);

string_splitter_io #

import 'package:string_splitter/string_splitter_io.dart';

[StringSplitterIo] is a utility class with 3 methods: [split], [splitSync], and [stream]; they function the same as [StringSplitter]'s methods, except they accept [File]s instead of [String]s.

split #

[split] asynchronously reads the provided [File] as a string and splits it apart at the provided [splitters] and returns a Future<List<String>> containing the split parts when the it completes.

final file = File('path/to/file');
final stringParts = await StringSplitterIo.split(
  file,
  splitters: [','],
  delimiters: [Delimiter('<', '>')],
  trimParts: true,
);

[split] can alternatively be used as an extension method on [File].

final file = File('path/to/file');
final stringParts = await file.split(
  splitters: [','],
  delimiters: [Delimiter('<', '>')],
  trimParts: true,
);

splitSync #

[splitSync] synchronously reads the provided [File] as a string and splits it apart, returning a List<String> containing the split parts.

final file = File('path/to/file');
final stringParts = StringSplitterIo.splitSync(
  file,
  splitters: [','],
  delimiters: [Delimiter('<', '>')],
  trimParts: true,
);

[splitSync] can alternatively be used as an extension method on [File].

final file = File('path/to/file');
final stringParts = file.splitSync(
  splitters: [','],
  delimiters: [Delimiter('<', '>')],
  trimParts: true,
);

stream #

[stream] is intended for splitting large files; it streams the contents of the provided [File], splitting and returning the parsed chunks as they're read.

final file = File('path/to/file');
final stream = StringSplitterIo.stream(
  file,
  chunkSize: 1000,
  splitters: [','],
  delimiters: [r'\'],
);

await for (List<String> parts in stream) {
  print(parts);
}

[stream] can alternatively be used as an extension method on [File], referenced as [splitStream].

final file = File('path/to/file');
final stream = file.splitStream(
  chunkSize: 1000,
  splitters: [','],
  delimiters: [r'\'],
);

await for (List<String> parts in stream) {
  print(parts);
}
8
likes
130
pub points
79%
popularity

Publisher

verified publisherjamesalex.dev

Utility classes for splitting strings and files into parts. Supports streamed parsing for handling long strings and large files.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-2-Clause (LICENSE)

Dependencies

collection

More

Packages that depend on string_splitter