Trim, drop empty lines, dedupe, sort or reverse. Counts update with the result, and nothing is sent to a server.
1
Paste a list. Empty lines go, and the counts sit under the result.
A list in a text file is one item per line. This page trims, drops empty lines, keeps the first copy of a duplicate, sorts, and reverses. The switches apply in that order, so a reverse after a sort is Z to A.
The counts describe the result. A character is a Unicode code point, so é is one character. The byte count is the UTF-8 encoding of that result, so é is two bytes. Words are stretches separated by whitespace.
b a b
b a
item10 item2
item2 item10
Unique runs before sort. Two lines that differ only by spaces stay distinct unless Trim is on, because trimming happens first and unique then sees the trimmed text.
Sort uses English collation with numeric comparison, and it is case-sensitive. It is not the sort order of the French page, and it is not a raw UTF-16 code-unit sort.
A hyphenated word counts as one word. Blank lines are not words. The character count includes the line breaks that remain in the result.
Unique keeps the first occurrence and drops the later copies. Reverse flips whatever order the earlier switches produced.
The input is limited to 100,000 characters. Past that, the previous result stays on screen. The share link stores the source and the switches, and the result is computed again when the link is opened.
UTF-8 is defined by RFC 3629, published in November 2003 by F. Yergeau. A code point under U+0080 is one byte. U+00E9, the letter é, is the two bytes C3 A9.
JavaScript’s string length counts UTF-16 code units, so some characters count as 2. The character count on this page counts code points instead, which is why it can be smaller than s.length for the same text.