Trier les caractères d’un texte
« cabana » devient « aaabcn » : les 6 caractères alignés dans l'ordre Unicode, répétitions comprises. Espaces, signes et emoji sont conservés et triés eux aussi, donc deux anagrammes exactes donnent toujours le même résultat. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- cabana
- Texte
- aaabcn
- Caractères
- a, a, a, b, c, n
- Quantité
- 6
- Original
- cabana
Le tri de caractères transforme un texte en inventaire ordonné de ses lettres, chiffres, espaces, signes, symboles et emoji. Les répétitions restent présentes : vous pouvez ainsi comparer des anagrammes, examiner précisément une chaîne ou préparer une énigme chiffrée. L’outil conserve les graphèmes Unicode complets lorsque l’environnement le permet, puis les classe selon leurs suites de points de code. Il est déterministe, respecte la casse et ne supprime aucun espace.
Ce que révèle le tri des caractères
Le tri efface l’effet de la position initiale tout en préservant exactement le contenu. Deux anagrammes strictes donnent donc le même résultat : elles possèdent les mêmes caractères avec les mêmes fréquences. Cette présentation révèle aussi un espace superflu, un signe répété, un chiffre absent ou une différence de casse peu visible.
Tous les caractères sont inclus. Selon Unicode, les espaces apparaissent généralement avant les signes, les chiffres, les majuscules et les minuscules latines. Les autres écritures occupent la place fixée par leurs points de code, sans dictionnaire ni préférence linguistique.
Aucun doublon n’est supprimé. La réponse fournit à la fois le texte trié assemblé et le tableau des caractères, afin que vous puissiez les lire, les compter ou les comparer sans découper de nouveau la chaîne. Le texte original est également retourné pour présenter clairement l’avant et l’après dans une interface ou un journal.
Traitement des caractères Unicode
Un texte moderne ne se découpe pas correctement en simples unités UTF-16. Certains emoji utilisent des paires de substitution, des lettres accentuées combinent une base et des marques, et des symboles visibles réunissent plusieurs points de code. Un découpage naïf les casse et fausse le comptage.
Ce service emploie Intl.Segmenter lorsqu’il est disponible afin de garder les graphèmes perçus intacts avant le tri. Sinon, il parcourt les points de code, ce qui protège encore les paires de substitution. Il compare ensuite numériquement les suites de chaque caractère, de gauche à droite.
La règle reste ainsi reproductible et indépendante des paramètres régionaux. L’entrée n’est pas normalisée : une lettre précomposée peut différer de son équivalent visuel formé avec une marque combinée. Cette distinction aide à diagnostiquer un encodage.
Pour un ordre alphabétique linguistique, choisissez plutôt un outil de collation ; celui-ci décrit volontairement la composition exacte.
Anagrammes, énigmes et automatisation
Pour vérifier une anagramme exacte, envoyez chaque proposition séparément et comparez les champs text renvoyés. Déterminez auparavant si les espaces, la ponctuation, la casse et les accents doivent compter. Le service les conserve ; pour une règle plus souple, appliquez le même prétraitement aux deux entrées.
Cette séparation évite toute transformation cachée. Les jeux et outils de chiffrement peuvent exploiter le tableau characters pour afficher un inventaire, repérer les répétitions ou fabriquer des indices sans réimplémenter Unicode. Un contrôle qualité peut trier de courts identifiants afin de révéler des différences invisibles.
Aucun réseau, modèle, hasard ou horloge n’intervient : une entrée identique produit toujours la même sortie. Le champ text doit contenir une chaîne non vide ; une chaîne composée uniquement d’espaces reste valable.
Cas d’usage
Vérifier des anagrammes exactes
Triez deux mots ou expressions préparées, puis comparez leurs résultats pour vérifier chaque occurrence.
Créer des codes et jeux de mots
Produisez un inventaire ordonné qui montre les doublons sans révéler l’ordre de départ.
Inspecter la composition d’un jeton
Repérez les écarts d’espace, de ponctuation, de casse, d’accent ou de symbole dans vos tests.
Questions fréquentes
Quel ordre est appliqué ?
L’ordre croissant des suites de points de code Unicode, et non celui d’un dictionnaire régional.
Les espaces sont-ils supprimés ?
Non. Espaces, ponctuation, symboles et répétitions sont tous conservés.
Puis-je contrôler une anagramme ?
Oui. Prétraitez les deux expressions de façon identique, triez-les et comparez leur champ text.
Les emoji restent-ils intacts ?
La segmentation en graphèmes est privilégiée ; le repli par points de code protège les paires de substitution.
Pourquoi les lettres accentuées se retrouvent-elles après le z ?
Parce que l'ordre suit le numéro Unicode de chaque caractère, pas celui du dictionnaire. Les lettres latines de base passent d'abord, donc é, è ou ç arrivent après le z. Les majuscules passent aussi avant les minuscules.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/sort-characters \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"cabana"}'const res = await fetch("https://api.kit.forhosting.com/str/sort-characters", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "cabana"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/sort-characters",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "cabana"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/sort-characters", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"cabana"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"cabana"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/sort-characters", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "cabana"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.sort_characters",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Vous pouvez l’exécuter gratuitement dans votre navigateur ou utiliser l’API pour $0.002 par élément.
Anagrammes, énigmes et automatisation
Une valeur absente, vide ou non textuelle renvoie invalid_input. Le navigateur est gratuit et l’API coûte $0.002 par élément réussi.
Questions techniques
Quel est le tarif de l’API ?
Un élément réussi coûte $0.002. L’exécution dans votre navigateur est gratuite.