Convertir très grand nombre en unicode -JAVA

Jehol -  
 danimo -
Bonjour à tous,
j'ai récupérer le code JAVA d'un algorithme qui analyse des chaines de caractères (unicode), et je souhaite l'utiliser pour analyser des chaines de nombres (pouvant être très grand: une chaine de nombre (séparés par des "-" pourrait par exemple être 120-45-7684-34-439743-45-7684 etc.
Ce que je ne sais pas faire, c'est convertir un nombre (pouvant être très grand) en caractère unicode.

Quelqu'un pourrait-il me donner un exemple pour par exemple le nombre 439743 (à ma connaissance il y a de l'espace dans unicode 5 pour plus d'1 million de caractère).

Merci d'avance.
simon
Configuration: Linux
Firefox 3.5.7

2 réponses

  1. danimo
     
    Salut,
    En UNICODE chaque caractere est représenté selon le format suivant: \uhhhh.
    Toujours \u ( u impérativement minuscule).
    hhhh est une valeur hexa décimale.

    Dans ton cas, tu dois représenter des nombres selon le format UNICODE.

    Un nombre est composé des caractères numériques 0 à 9.
    En Unicode, le code de ces caractères 0 à 9 est \u0030 à \u0039.

    Exemple:

    La chaîne "1234567890" sera la suivante en Unicode:

    "\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0030".
    La chaîne (ton exemple) "439743" >>>>>>>> "\u0034\u0033\u0039\u0037\u0034\u0033".
    Je suppose que tu veux convertir le nombre "439723".
    On remarque qu'on a toujours /u003 donc qu'il faudra y ajouter (par compactage) successivement 4, 3, 9, 7, 4 et 3.
    Une solution serait (il y en a d'autres) d'utiliser la méthode substring(int indiceDebut, int indiceFin)
    pour extraire chaque caractère de la chaîne "439723" afin de l'ajouter d'abord à \u003, puis \u003car à
    la chaîne devant contenir les caractères Unicode.

    Exemple:
             String ma_chaineN = "439723";
             String  ma_chaineU = "";
             String debUnicode = "\\u003"; // la partie commune
             String debU = "";
             int longueur_chaineN = ma_chaineN.length();
             int indiceDebut = 0;
             int indiceFin = 0;
             for(indiceDebut = 0; indiceDebut <longueur_chaineN; indiceDebut++)
             {
                debU = debUnicode;
                debU+= ma_chaineN.substring(indiceDebut, indiceDebut +1);
                ma_chaineU+= debU;
                System.out.println("ma_chaineU: " + ma_chaineU);
             }
             System.out.println("\n\nma_chaineU: " + ma_chaineU);
    


    Cordialement,

    Dan
    0
    1. Jehol
       
      Bah tout est là. Merci beaucoup. Des gens comme ça rendent la vie plus belle (ah oui le soleil quand il est à montpellier aussi).
      ciao
      Jehol
      0
  2. danimo
     
    Et moi celui du mexique...

    il reste à extraire (avant) les nombres de la chaine où il sont séparés par un '-':
    un petit split fera l'affaire non ? et tu les récupères dans un tableau...

    Dan
    -1