StringInhalt umwandeln



  • Bitte Code-Tags verwenden das erhöht die Lesbarkeit.



  • Ich versteh nix mehr 😞

    Versuch nochmal genau zu erklären, was du machen willst und benutze wie CengizS schon sagte die Code- bzw. Java-Tags. Ein paar Einrückungen sind auch nicht verkehrt 😉

    basedow



  • Moin,
    keine Ahnung, warum das so dargestellt wurde!!?? Hab ich aus meinem Editor kopiert. Naja, neuer Versuch!!

    import java.lang.String; 
    import java.io.*; 
    class Eingabe { 
    public static void main (String [] arguments) { 
    BufferedReader console = new BufferedReader(new InputStreamReader(System.in)); 
     System.out.print("Bitte geben Sie Ihren Text ein: "); 
     System.out.print(" "); 
     String Input=null; 
     char[] hexn="0123456789ABCDEF".toCharArray(); 
     String hex=""; 
    
      try{ 
        Input = console.readLine(); 
      } 
      catch (IOException e) {Input = "<" + e + ">";} 
    
    int length=Input.length(); 
    String [] d= new String[length]; 
    String [] k= new String[length]; 
    String Str = ""; 
    int g[]=new int [length]; 
    byte a[] = new byte[length]; 
    a=Input.getBytes(); 
     for (int h =0;h<length;h++) 
      { 
       g[h]=(int)(a[h]); 
       if(g[h]<64){ 
       d[h]="0"+Integer.toBinaryString(g[h]); 
       } 
       else if(g[h]<32){ 
       d[h]="00"+Integer.toBinaryString(g[h]); 
       } 
       else if(g[h]<16){ 
       d[h]="000"+Integer.toBinaryString(g[h]); 
       } 
       else 
       { 
       d[h]=Integer.toBinaryString(g[h]); 
       } 
      } 
    
      for (int i =0;i<length;i++) 
       { 
       int m=(length-1-i); 
       k[i]=d[m]; 
       Str = Str +k[i]; 
       } 
    
       int lgh = Str.length(); 
    
       System.out.println(Str); 
       System.out.println(" "); 
       String subStr = ""; 
       int anf = 0; 
       int end = 0; 
    
       if(lgh%8>0) 
        { 
        int n = ((lgh/8)+1); 
        String [] w= new String[n]; 
        String[] last = new String[((lgh/8)+1)]; 
    
       for(int j=0; j<(lgh/8); j++) 
        { 
        anf = (lgh-(8*(j+1))); 
        end = (lgh-(8*j)); 
        subStr = Str.substring(anf, end); 
        last[j] = subStr; //Integer.valueOf(subStr).intValue()); 
        subStr = ""; 
       } 
      last[((lgh/8))] = Str.substring(0, (lgh%8));   
      for(int r=0; r<=(lgh/8); r++) 
       { 
        w[r] = last[(lgh/8)-r]; 
       System.out.println(r+". Eintrag ist: "+last[r]); 
       } 
      } 
      else 
      { 
       int n = ((lgh/8)); 
       String [] w= new String[n]; 
       String[] last = new String[(lgh/8)]; 
      for(int j=0; j<(lgh/8); j++) 
       { 
       anf = (lgh-(8*(j+1))); 
       end = (lgh-(8*j)); 
       subStr = Str.substring(anf, end); 
       last[j] = subStr; 
       subStr = ""; 
       } 
    
      for(int r=0; r<(lgh/8); r++) 
       { 
       w[r] = last[(lgh/8)-r]; 
       System.out.println(r+". Eintrag ist: "+last[r]); 
       } 
      } 
     } 
    }
    

    Also was ich genau machen muss:

    der eingegeben Text wird in ein CharArray eingelesen und dann in Bin-Code umgewandelt. (ASCII-Code)
    Dann schreib ich dafraus einen grussen String. Dieser wird in achtel aufgeteilt!!. und in ein STringArray geschrieben. Jetzt müsste falls die Division nicht aufgeht, das letzte Array mit Nullen eufgefüllt werden, damit auch dieser Eintrag achtstellig wird.
    Dann sollen diese achstelligen binären StringArrayEinträge in HexEinträge umgewandelt werden.



  • Also:

    Ich habe doch eine Methode gepostet, die aus einem beliebig langen BinString (<- wie du ihn nennst) einen HexString macht. Nochmal: ich habs nicht getestet, aber da der CengizS auch nix angemerkt hat (ausser natürlich dem Fehler, der aber bereits behoben ist), gehe ich erstmal davon aus, dass sie auch funzt. Also mach dir keine Sorgen über diese Auffühlaktion.

    Ich verstehe immer noch nicht warum der ganze Aufwand betrieben werden soll, aber das geht mich ja auch eigentlich nix an.

    Nimm doch einfach deinen gesamten BinString und zerleg ihn wie auch immer es dir gefällt. Dann nimmst du die Schnippsel und nudelst sie durch die Methode, die ich gepostet habe. Dann kommt hinten ein HexString für den jeweiligen BinString-Schnippsel raus. Mit dem HexString machst du weiter wie es deine Anwendung verlangt. Fertig!!!

    Wenn ich das so halbwegs verstanden habe, dann willst du Text in Hex umwandeln. Also nimm einfach jedes Zeichen und mach ein int oder ein byte draus oder so und dann erst durch die Methode.



  • basedow schrieb:

    [...]ich habs nicht getestet, aber da der CengizS auch nix angemerkt hat (ausser natürlich dem Fehler, der aber bereits behoben ist) [...]

    Ich ebenfalls nicht - habe nur den offensichtlichen Fehler angemerkt 🙂



  • @CengizS: Dir entgeht wohl auch nix wie??? 😉



  • Ich beantrage hiermit eine Änderung im Protokoll:

    basedow schrieb:

    [...] gehe ich erstmal davon aus, dass sie auch funzt.[...]

    sollte heissen:

    [...]gehe ich erstmal davon aus, das keine offentsichtlichen Fehler drin sind und hoffe weiterhin, dass sie funzt.[...]

    Gut so??? 😉



  • Sehr gut 😉



  • ja hast du gepostet, aber wo bastel ich sie genau ein?

    Naja, ganz so easy ist es nicht! Mit einfach "..Text in Hex.." umwandeln ist es nicht getan!!
    Die Sache ist die dass ein Zeichen 7Bitmäßig codiert ist. Ich brauche aber acht Bits bzw durch ein vorgegebenes Umwandlungsverfahren werden acht Bit draus die ich dann in Hex umwandel!!
    Den genauen Zusammenhang zu erklären waere hier zu viel des Guten.
    Ist ja so schon Trouble genug!!

    Ich bin aber sehr froh über Eueren Einsatz!! Danke nochmals für all die Hilfe (bis zur Lösung) 😉


Anmelden zum Antworten