Free Online Text Tools
A text tool measures or transforms a string without caring what it means. Count words and characters, change case, sort and de-duplicate lines, join broken lines, find and replace, or compare two versions of a text.
Showing 12 tools
Case Converter
Convert text between different cases (uppercase, lowercase, camelCase, snake_case, etc.)
Word Counter
Free online word counter - count words, characters, sentences, paragraphs and reading time
Lorem Ipsum Generator
Generate placeholder lorem ipsum text for designs and mockups
Text to Handwriting Converter
Convert typed text into realistic handwritten style. Choose from various handwriting fonts, ink colors, and paper backgrounds.
Text Diff Checker
Compare two texts and find differences. Highlight additions, removals, and common parts with word or character level comparison.
String Reverse
Reverse any text string instantly. Supports file upload and URL loading with auto-reverse option.
Word Frequency Counter
Count how often each word appears in your text and rank the results by frequency. Filter stop words, set a minimum length, and copy the table. Client-side, no signup.
Line Sorter
Sort lines of text alphabetically, numerically, or by length, reverse or shuffle them, and remove duplicates, blank lines, and whitespace - all in your browser.
Duplicate Line Remover
Remove duplicate lines from text while keeping the original order. Dedupe a list, drop every repeated line, or keep only the duplicates, with case and whitespace options. Runs client-side.
Remove Line Breaks
Remove line breaks and carriage returns from text and join the lines back together. Flatten a whole block or keep paragraph breaks, with trim and space-collapse options, all in your browser.
Find and Replace Text
Find and replace text online without regular expressions. Apply several rules at once, match whole words, and control case. Client-side, no signup.
Character Counter
Count characters, words, sentences and paragraphs live as you type, estimate reading time and byte size, and check your text against social media and SEO length limits.
A text tool transforms or measures a string without knowing what the string means. That sounds trivial until Unicode is involved, which it always is: a visible character is not a unit of storage, an accent can be stored separately from the letter it sits on, and a single emoji can be five characters joined by invisible connectors. Most of the interesting bugs in this category come from a tool that treated text as bytes.
These online text tools split by what they do to the input. Some measure it: the word counter, the word frequency counter and the text diff checker. Others transform it: case conversion, line sorting, reversal and handwriting rendering. One produces text from nothing, which is the lorem ipsum generator. And one rewrites it in place: find and replace swaps every occurrence of a literal phrase for another, across as many rules as you like, without the escaping a regular expression would demand. And one repairs text that arrived broken: remove line breaks joins the hard-wrapped lines a PDF or an email client leaves behind back into paragraphs. When a rewrite needs judgement rather than a rule, the AI writing tools take over, and when two versions of the same text have to be reconciled, that is diff and compare.
Text tools by what they do to the input
| Tool | What it does | Worth knowing |
|---|---|---|
| Word & Letter Counter | Counts words, characters, sentences, paragraphs | Reading time assumes 200 words per minute |
| Text Diff Checker | Highlights additions and removals | Compare by word or by character |
| Case Converter | Nine cases including camel, snake and kebab | Title case is not the same as capitalising each word |
| Line Sorter | Sorts, dedupes and reverses lines | Numeric-aware, so file10 sorts after file9 |
| String Reverse | Reverses text by visible character | Emoji and accents survive; right-to-left text is a different problem |
| Lorem Ipsum Generator | Produces placeholder paragraphs | Placeholder text left in a page gets indexed |
| Text to Handwriting | Renders text as handwriting on paper | Output is an image, so it is not searchable |
| Word Frequency Counter | Ranks words by how often they appear | Filter stop words, or the top of the list is the and of |
| Find and Replace | Swaps literal phrases, several rules at once | Literal, not regex, so a dot matches only a dot |
Why counting characters is harder than it looks
Ask a program for the length of a string and it will usually tell you how many UTF-16 code units it holds. For plain English that equals the number of letters. For a rocket emoji it is 2, for a family emoji it can be 11, and for an accented letter typed on a Mac it is often 2 rather than 1, because the accent is stored as a separate combining mark after the base letter. A character counter that reports storage size disagrees with the eye, and a Twitter-style limit built on it rejects posts that look short.
The fix is grapheme segmentation, defined in Unicode Annex #29 and exposed in browsers as Intl.Segmenter, which finds the boundaries between user-perceived characters. It is what the counter and the string reverser use, which is why reversing a sentence containing an emoji or a Devanagari cluster gives it back intact rather than in pieces. Right-to-left scripts remain a separate matter: Arabic and Hebrew are stored in logical order and laid out right to left by the browser, so reversing the storage does not mirror the display.
Diffing, sorting and the choices underneath them
A diff is computed from the longest common subsequence of the two texts, and everything not in that subsequence is an addition or a removal. The choice that changes the output most is the unit of comparison. Word-level diffing is what you want for prose, where a rewritten sentence should read as one change. Character-level diffing is what you want for a URL, an identifier or a number, where the difference is a single digit and a word-level diff would report the whole token as replaced. The diff checker offers both because neither is right for both jobs.
Sorting has the same kind of hidden choice. A plain lexicographic sort puts file10 before file9, because it compares character by character and 1 sorts before 9. The line sorter compares numerically where numbers appear, which is the ordering people expect from a list of filenames or versions, and can fold case and drop duplicates in the same pass.
Generated text, and where it should not end up
Lorem ipsum has been the standard typesetting placeholder since the 1500s, and it survives for a real reason: because the words mean nothing, a reader looks at the shape of the type rather than reading the copy, which is the whole point of a layout proof. Its distribution of word lengths approximates Latin rather than English, so a design set in lorem ipsum will hold slightly different amounts of real English text, which is worth remembering when a headline fits perfectly in the mockup and not in production.
The one hard rule is that it must not ship. Placeholder text left on a live page gets crawled and indexed like any other content, and a search for the phrase turns up a long tail of production sites that forgot to replace it. The text to handwriting converter has a related caveat from the other direction: its output is an image, so the words in it cannot be selected, searched or read by a screen reader. Every tool here runs client-side, so drafts, notes and anything else you paste stay on your device.
Frequently asked questions
How is reading time calculated?
By dividing the word count by 200 words per minute and rounding up. Adult silent reading of general prose typically falls between 200 and 250 words a minute, so 200 gives a slightly generous estimate. Technical material with code or formulas reads far slower than any words-per-minute figure suggests.
Should I diff by word or by character?
By word for prose, by character for anything where a single symbol matters. Word-level comparison reports a rewritten sentence as one change and keeps the output readable; character-level comparison is what shows you that two long URLs or identifiers differ by one digit, which a word diff would report as the whole token being replaced.
Does reversing text break emoji?
Not here. The reverser works on grapheme clusters, the units Unicode defines as user-perceived characters, so a flag, a family emoji or an accented letter comes back whole. Naive reversal splits on UTF-16 code units, which turns a single emoji into two unpaired halves and moves a combining accent onto the wrong letter.
Why does my file list sort in the wrong order?
Because a plain alphabetical sort compares text character by character, so file10 comes before file9 the same way apple comes before banana. Numeric-aware sorting reads runs of digits as numbers, which produces the order people expect from filenames, versions and anything else with a number in the middle. The line sorter does this by default.
Is lorem ipsum bad for SEO?
Only if it ships. Placeholder text on a live page is crawled and indexed like any other content, so a page describing itself in fake Latin ranks for nothing and reads as abandoned to anyone who finds it. As a layout proof before launch it is harmless and genuinely useful, because meaningless words stop you reading the copy instead of judging the type.
Is my text uploaded when I use these tools?
No. Every text tool here runs client-side, in your browser, so drafts, notes, transcripts and anything else you paste stay on your device. Nothing is transmitted, logged or retained, and the pages keep working with the network disconnected.