2017-05-24 2 views
0

Situation:vertical Hex ASCII Java

J'ai une interface graphique où je convertir déjà un maléfice horizontal en ASCII ... Mais maintenant, je veux convertir un Hex vertical en ASCII.

Est-ce que quelqu'un a des idées pour résoudre ce problème?

I déjà splited il:

vert.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      fintext5.setText(""); 

      String[] test = entertext3.getText().split("\\n"); 
      for(int i = 0; i<test.length; i++){ 
       System.out.prinln(test[i]); 
      } 
     } 
    }); 

code pour Hex horizontal:

button5.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      fintext5.setText(""); 
      String readout = entertext3.getText().replace(" ", "").replace("\n", ""); 

      StringBuilder output = new StringBuilder("");    
      for (int i = 0; i < readout.length(); i += 2) 
      { 
       String str = readout.substring(i, i + 2); 
       output.append((char) Integer.parseInt(str, 16)); 
      } 
      fintext5.append(output.toString()); 
     } 
    }); 

Exemple vertical Hex (41 42 43 44 45 46):

4 4 4 
1 2 3 
4 4 4 
4 5 6 
+0

Pouvez-vous montrer un exemple de ce que serait cet "hexagone vertical"? –

+0

Eh bien, si 'test [0] .charAt (0)' est le premier chiffre du premier ASCII, où pensez-vous trouver le chiffre _second_ de ce premier ASCII? –

+0

peut-être tester [1] .chatAt (0)? – Starlight

Répondre

0

You » re se perdre tellement, je vais juste vous donner un point de départ de travail:

vert.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     ausgabe5.setText(""); 
     String[] test = eingabe3.getText().split("\\n"); 
     StringBuilder output = new StringBuilder(); 
     for (int i = 0; i < test.length; i += 2) { 
      for (int j = 0; j < test[i].length(); j++) { 
       String hex = "" + test[i].charAt(j) + test[i + 1].charAt(j); 
       output.append((char)Integer.parseInt(hex,16)); 
      } 
     } 
     System.out.println(output.toString()); 
    } 
}); 

Veuillez le lire et poser des questions sur tout ce que vous ne comprenez pas.

+0

Ok merci beaucoup. J'obtiens le résultat que je cherche: D – Starlight

+0

oh, j'ai juste une question que fait ce 16 chez parseInt? – Starlight

+0

C'est la base de la chaîne: 16 pour hexadécimal –