Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446

    [JAVA]Convertire bytes in stringhe

    Salve ragazzi,ho un problema di codifica char,quindi da quanto ho letto dovrei leggere da bytes e convertire tutto in stringa utf 16 per java.

    Qualcuno può farmi un esempio?La cosa problematica è che devo (durante la lettura dei bytes)vedere se è presente un determinato char ed in caso finire la lettura(il classico carattere di fine stringa per capirci).
    Aiuti?

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    un costruttore di String prende un array di byte e un charset
    http://java.sun.com/javase/6/docs/ap...arset.Charset)

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    grazie corro subito a visionare il link,posso anche aggiungere il controllo sui caratteri?

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    per lui la fine della stringa è rappresentata dal char \0
    ma tu puoi ciclare la stringa e cercare un altro carattere
    dai un occhio a charAt e length

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    converrebbe quindi prendere tutti i bytes e crearne un array giusto?Se non conoscessi quindi la dimensione come dovrei fare?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da floyd
    per lui la fine della stringa è rappresentata dal char \0
    No, proprio no. In Java non c'è un carattere che fa da "terminatore" della stringa!!

    Per tornare al problema della conversione di una sequenza di byte in String, c'è una questione fondamentale da capire. Quando si parla di una sequenza di byte da convertire in una stringa e viceversa, è necessario sapere e stabilire in quale charset è codificata la sequenza di byte.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    da quanto capisco il server a cui mi connetto codifica il tutto in ascii mentre java percepisce bene l'utf 16...ed è per questo che il mio programma non legge le stringhe date dal server che contiene àèìòù ed altri caratteri

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    Originariamente inviato da andbin
    No, proprio no. In Java non c'è un carattere che fa da "terminatore" della stringa!!
    hai ragione, credevo si comportasse come il c
    comunque immagino che energie abbia bisogno di
    codice:
    String s = new String(array_di_byte, un_charset);
    String altra = null;
    for (int i=0; i<s.length(); i++) {
      if (s.charAt(i) == 'un_carattere') {
        altra = s.substring(0, i);
        break;
      }
    }

  9. #9
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    grazie mille floyd,ora quello che mi rimane da scoprire è come creare un array senza conoscerne a priori la grandezza e come aggiungere ogni byte letto a quest'array.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da energie
    grazie mille floyd,ora quello che mi rimane da scoprire è come creare un array senza conoscerne a priori la grandezza e come aggiungere ogni byte letto a quest'array.
    java.io.ByteArrayOutputStream. Ci scrivi tutti i byte che vuoi e poi alla fine ottieni l'array.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.