xstring

pub package

String extensions to make working with String? variables more convenient. Useful for dealing with empty and nullable strings (isBlank, orElse, etc), code generation (camelCase, underscored, etc) or general output of data (titleize, initials, etc).

Usage

To use this plugin, add xstring as a dependency in your pubspec.yaml file.

Example

import 'package:xstring/xstring.dart';

void main() {

  // displaying string data
  final name = 'foo bar';

  banner('input string: $name');

  print('${name.titleized} (${name.initials})');
  // output: Foo Bar (FB)

  print(name.camelCase);
  // output: fooBar

  print(name.underscored);
  // output: foo_bar


  // dealing with potentially null and/or empty strings
  String? test = null;
  print('isBlank: ${test.isBlank}');
  // output: isBlank: true;

  test = '';
  print('isBlank: ${test.isBlank}');
  // output: isBlank: true;

  test = '   ';
  print('isBlank: ${test.isBlank}');
  // output: isBlank: true;

  test = ' - ';
  print('isBlank: ${test.isBlank}');
  // output: isBlank: false;

  test = 'string 1';
  print(test.orElse('string 2'));
  // output: string 1

  print(test.prefix('result: ').orElse('no data'));
  // output: result: string 1

  test = null;
  print(test.orElse('string 2'));
  // output: string 2

  print(test.prefix('result: ').orElse('no data'));
  // output: no data


  // string parsing and collection-like conveniences
  // (see also the 'characters' dart package)
  final data = 'my-special-code';
  print(data.slice(3, -5));
  // output: special

  print(data.skip(3).take(7));
  // output: special

  print(data.skip(-5).take(-7));
  // output: special
}

Libraries

xstring