2017-05-24 4 views
0

Situation:Vertikal Hex in ASCII-Java

Ich habe eine GUI, wo ich bereits eine horizontale Hex in ASCII konvertieren ... Aber jetzt will ich eine vertikale Hex in ASCII konvertieren.

Hat jemand einige Ideen, wie ich das lösen kann?

I splited bereits es:

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 für die horizontale Hex:

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()); 
     } 
    }); 

Beispiel für vertikale Hex (41 42 43 44 45 46):

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

Können Sie ein Beispiel dafür zeigen, was dieses "vertikale Hex" wäre? –

+0

Nun, wenn 'test [0] .charAt (0)' ist die _first_ Stelle des ersten ASCII, wo würdest du vermutlich die _secred_ Stelle des ersten ASCII finden? –

+0

vielleicht test [1] .chatAt (0)? – Starlight

Antwort

0

Sie‘ Ich werde dir einen funktionierenden Startpunkt geben:

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()); 
    } 
}); 

Bitte schauen Sie es sich an und fragen Sie nach etwas, das Sie nicht verstehen.

+0

Ok vielen Dank. Ich bekomme das Ergebnis, das ich suche: D – Starlight

+0

oh, ich habe nur 1 Frage, was diese 16 bei parseInt tun? – Starlight

+0

Es ist die Wurzel der Zeichenfolge: 16 für hexadezimale –