2017-08-06 3 views
0

Ich habe Array so dieseJava konvertieren Unicode in Originalsprache

String[] array ={"062C06450644","062C06280644"} 

Ich möchte diese Unicode auf die ursprüngliche Sprache übersetzen mit diesem Code:

StringBuilder stringBuilder = new StringBuilder(); 
for(String arr:array) 
{ 
    for(int i=0;i<arr.length();i+=4) 
    { 
     String s = arr.substring(i,i+4); 
     stringBuilder.append((char) Integer.parseInt(s,16)); 
    } 

    System.out.println("sb:"+stringBuilder); 
} 

Das Ergebnis:

sb: جمل 
sb: جملجبل 

Das Problem: diese co Hängen Sie das 2. Wort an 1. usw. an.

Die Frage: Wie ich jedes Wort übersetze, ohne jedes Wort an das Wort vorher anzuhängen.

möchte ich das Ergebnis so

sb:جمل 
sb:جبل 

Antwort

1

Sie ein sauberes StringBuilder für jedes Wort sein müssen. Gerade tauschen die ersten beiden Zeilen:

for(String arr:array) { 
    StringBuilder stringBuilder = new StringBuilder(); 

    for(int i=0;i<arr.length();i+=4) { 
     String s = arr.substring(i,i+4); 
     stringBuilder.append((char) Integer.parseInt(s,16)); 
    } 

    System.out.println("sb:"+stringBuilder); 
} 

Alternativ können Sie die StringBuilder am Ende der äußeren Schleife mit stringBuilder.setLength(0) löschen.

+0

Dank @macmoonshine, die das Problem lösen. – Wasfy

+0

Ihre Alternative sollte 'stringBuilder.setLength (0)' sein ... –

+0

@Usagi Miyamoto: Ja, Sie haben Recht. Ich habe meinen Beitrag aktualisiert. – clemens

Verwandte Themen