This is an implementation of the left-pad library with special support for Java 8's Functional paradigm. It is lightweight and supports industrial usage thanks to its 100% test coverage and continuous integration.
It works well with modern libraries like Spring Data and jooq.
At it's heart, left-pad is easy to use and simple to grasp. However, its interface is built on decades of programming language research.
The simplest usage looks like new LeftPad(length, character).apply(string)
.
It also supports an advanced functional style whereby you define a new LeftPad
functor
and apply it as a unary function which accepts a CharSequence
.
Example:
LeftPad fourPadded = new LeftPad(4);
fourPadded.apply("foo"); // => " foo"
fourPadded.apply("x"); // => " x"
// using Java 8 Streams
// this will yield [" x", " y", " z"]
asList("x", "y", "z").stream().map(new LeftPad(2)).collect(Collectors.toList())
LeftPad also supports TDD practices since you always create a LeftPad object instance before calling the function. This makes it easy to mock.
You can even use your favorite dependency injection framework to efficiently pass a configured LeftPad object throughout your code without impacting testability.
Clone this repository, run mvn install
, and this project as a dependency.
maven:
<dependency>
<groupId>net.raboof</groupId>
<artifactId>left-pad</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
gradle:
compile 'net.raboof:left-pad:1.0-SNAPSHOT'
sbt:
libraryDependencies += "net.raboof" % "left-pad" % "1.0-SNAPSHOT"
Licensed under The Apache License, Version 2.0. See the LICENSE file.