Ordenar líneas por longitud
watermelon, fig, apple, pear y plum vuelven como fig, pear, plum, apple y watermelon: 3, 4, 4, 5 y 10 caracteres. pear sigue delante de plum porque los empates conservan su orden original. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- watermelon fig apple pear plum
- Texto
- fig pear plum apple watermelon
- Cantidad
- 5
Ordene líneas por longitud cuando resulte más práctico revisar, comparar o presentar una lista empezando por las entradas breves. Pegue un texto de varias líneas: la herramienta contará los caracteres Unicode de cada una, las colocará de menor a mayor y conservará su orden original cuando tengan la misma longitud. El resultado ofrece texto listo para copiar y registros estructurados con cada medida, útiles tanto para una limpieza manual rápida como para procesos automatizados repetibles.
Cómo funciona el orden de líneas de menor a mayor
La herramienta considera línea cada segmento separado por CRLF de Windows, salto de línea o retorno de carro. Cuenta puntos de código Unicode, no unidades internas UTF-16 de JavaScript; por eso un emoji habitual cuenta como un carácter y no como dos mitades sustitutas. Después compara los recuentos y sitúa primero el menor.
Si varias líneas tienen igual longitud, mantiene su orden relativo original. Esta estabilidad resulta importante cuando la secuencia previa ya tiene significado y garantiza resultados previsibles al repetir la operación. Las líneas vacías también son válidas y miden cero, incluso la creada por un salto final, así que aparecen al principio.
Los espacios y signos cuentan y nunca se recortan. La respuesta incluye texto unido con saltos de línea y una matriz estructurada con cada línea y su longitud. No se aplica ningún desempate alfabético: la única regla es la longitud ascendente sin alterar silenciosamente los empates.
Cómo preparar la entrada e interpretar la salida
Envíe un objeto cuyo campo obligatorio text contenga la cadena multilínea completa. Puede incluir una sola línea, repeticiones, líneas formadas por espacios, alfabetos no latinos, emojis o distintos finales de línea. En la respuesta, text contiene el bloque ordenado y normalizado con saltos de línea.
La matriz lines está pensada para programas y ofrece objetos con los campos line y length, por lo que permite crear tablas, comprobar límites o continuar el proceso sin volver a contar. count indica el número de segmentos y method identifica la operación. Como no se recorta nada, tres espacios miden tres. Los caracteres sustitutos se cuentan una vez, pero las marcas combinantes por separado.
Para anchura visual, grafemas o colación lingüística, use una herramienta que aplique expresamente esas reglas.
Aplicaciones en listas, código y datos tabulares
El orden por longitud ayuda cuando las líneas excepcionalmente cortas o largas revelan estructura. Puede organizar títulos, etiquetas, palabras clave o productos para mostrar primero las entradas compactas y dejar visibles los casos atípicos al final. En desarrollo sirve para ordenar datos de prueba, configuraciones, registros o fragmentos antes de revisar límites de anchura.
En datos permite pegar una columna independiente y localizar valores vacíos, abreviados o demasiado extensos. Un proceso puede examinar el último registro para detectar el máximo, y otro guardar el texto como artefacto estable porque los empates conservan su secuencia. No hay red, azar ni reloj: la misma entrada siempre genera la misma salida.
No ordene por separado una columna si las columnas vecinas deben permanecer asociadas; en ese caso debe ordenar registros completos.
Qué puede hacer con ella
Organizar nombres y etiquetas
Coloque primero las etiquetas cortas y mantenga en su secuencia original las que tengan igual longitud.
Revisar código y configuración
Ordene fragmentos por caracteres para que las líneas anormalmente largas destaquen al final.
Examinar valores tabulares
Ordene una columna independiente para detectar entradas vacías, abreviadas o extensas sin modificar su contenido.
Preguntas frecuentes
¿Qué considera la herramienta un carácter?
Cuenta puntos de código Unicode. Un emoji habitual con par sustituto cuenta como uno, mientras que las marcas combinantes cuentan por separado.
¿Cómo se ordenan las líneas de igual longitud?
Se conserva su orden relativo original y no se añade ningún desempate alfabético.
¿Se eliminan los espacios antes de medir?
No. Los espacios iniciales y finales, los signos y cualquier otro punto de código forman parte de la línea y de su longitud.
¿Qué ocurre con las líneas vacías?
Miden cero y aparecen antes que las líneas con contenido. Un salto final crea un segmento vacío adicional.
¿Puedo ordenar de la más larga a la más corta?
Esta herramienta siempre pone primero la línea más corta. Para empezar por la más larga, tome el resultado e invierta el orden de sus líneas; las de igual longitud quedarán entonces al revés de su orden original.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/str/sort-lines-length \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"watermelon\nfig\napple\npear"}'const res = await fetch("https://api.kit.forhosting.com/str/sort-lines-length", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "watermelon\nfig\napple\npear"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/sort-lines-length",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "watermelon\nfig\napple\npear"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/sort-lines-length", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"watermelon\\nfig\\napple\\npear"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"watermelon\nfig\napple\npear"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/sort-lines-length", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "watermelon\nfig\napple\npear"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.sort_lines_length",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cómo preparar la entrada e interpretar la salida
Una cadena vacía sigue siendo texto válido y representa una línea vacía; la ausencia del campo o un valor que no sea cadena produce invalid_input.
Aplicaciones en listas, código y datos tabulares
El navegador resulta adecuado para tareas interactivas; una solicitud API cuesta $0.002 cuando la misma operación determinista forma parte de un flujo.
Preguntas técnicas
¿Cuánto cuesta la operación API?
Cada solicitud API correcta cuesta $0.002. La versión del navegador puede ejecutarse localmente para uso interactivo.