Avatar billede mnv_dk Praktikant
20. marts 2006 - 09:41 Der er 13 kommentarer og
1 løsning

String to Binary

Hej hvordan får jeg konverteret min streng "foo" til binært, med Java?
Avatar billede arne_v Ekspert
20. marts 2006 - 13:22 #1
binært hvad ?
Avatar billede mnv_dk Praktikant
20. marts 2006 - 14:03 #2
8-bit encoding
Avatar billede arne_v Ekspert
20. marts 2006 - 14:08 #3
s.getBytes("ISO8859-1")

måske
Avatar billede mnv_dk Praktikant
20. marts 2006 - 14:18 #4
Hmm, ja det giver da noget... Barre ikke det det gerne skulle...
test skulle gerne give: 000001000000000101110100011001010111001101110100
Men giver: [B@10b4199
Avatar billede arne_v Ekspert
20. marts 2006 - 14:48 #5
getBytes() returnerer byte[]

det kan du saa konvertere til en binaer tekst string med
Integer.toBinaryString
Avatar billede mnv_dk Praktikant
20. marts 2006 - 14:53 #6
Ehh den er jeg ikke helt med på Integer.toBinaryString kræver jo en int, og jeg står med en streng ?
Avatar billede arne_v Ekspert
20. marts 2006 - 14:56 #7
package march;

import java.io.UnsupportedEncodingException;

public class X2Bin {
    public static String toBin(byte b) {
        String res = Integer.toBinaryString(b);
        res = "00000000".substring(res.length()) + res;
        return res;
    }
    public static String toBin(byte[] b) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < b.length; i++) {
            sb.append(toBin(b[i]));
        }
        return sb.toString();
    }
    public static String toBin(String s) throws UnsupportedEncodingException {
        return toBin(s.getBytes("ISO8859-1"));
    }
    public static void main(String[] args) throws Exception {
        System.out.println(X2Bin.toBin("test"));
    }
}
Avatar billede arne_v Ekspert
20. marts 2006 - 14:56 #8
jeg faar dog ikke helt samme streng som dig ????
Avatar billede mnv_dk Praktikant
21. marts 2006 - 12:30 #9
Ahhh, ja, min fejl, har fået det til at virke nu.... Men, den kan umiddelbart ikke tage æ,ø,å.
Kunne forestille mig t det også er et problem med andre tegn.
Nogen ide til hvordan det løses ?
Avatar billede arne_v Ekspert
21. marts 2006 - 13:18 #10
hvad sker der ved ÆØÅ ?
Avatar billede mnv_dk Praktikant
21. marts 2006 - 13:32 #11
Den giver en exeption:

java.lang.StringIndexOutOfBoundsException: String index out of range: -24
    at java.lang.String.substring(Unknown Source)
    at java.lang.String.substring(Unknown Source)
    at SMSTools.toBin(SMSTools.java:31)
    at SMSTools.toBin(SMSTools.java:37)
    at SMSTools.toBin(SMSTools.java:42)
    at Gateway.main(Gateway.java:76)
Avatar billede arne_v Ekspert
22. marts 2006 - 02:29 #12
argh

signed bytes

ny version:

package march;

import java.io.UnsupportedEncodingException;

public class X2Bin {
    public static String toBin(byte b) {
        String res = Integer.toBinaryString(b & 0xFF); // <---- fixed her
        res = "00000000".substring(res.length()) + res;
        return res;
    }
    public static String toBin(byte[] b) {
        StringBuffer sb = new StringBuffer("");
        for(int i = 0; i < b.length; i++) {
            sb.append(toBin(b[i]));
        }
        return sb.toString();
    }
    public static String toBin(String s) throws UnsupportedEncodingException {
        return toBin(s.getBytes("ISO8859-1"));
    }
    public static void main(String[] args) throws Exception {
        System.out.println(X2Bin.toBin("testæøå"));
    }
}
Avatar billede arne_v Ekspert
22. marts 2006 - 02:30 #13
og et svar
Avatar billede mnv_dk Praktikant
22. marts 2006 - 13:46 #14
Jamen det var da lige det der skulle til ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester