2016-12-11 8 views
0

Ich versuche, eine Zeichenfolge zu konvertieren String-Darstellung in Integer und es später zurück konvertieren werde ich die Anforderung im Detail erklärenUmwandeln einer Zeichenfolge Zeichenfolge in Java integer und integer

nehme ich ein Passwort string „haben abc ", Ich möchte es in eine Folge von Ascii-Werten von jedem Zeichen umwandeln" 097098099 " Dann später möchte ich es wieder in eine Zeichenfolge" abc "konvertieren

In c kann dies leicht mit Sprintf und getan werden scanf aber in Java bin ich verwirrt. Danke.

+4

Mögliches Duplikat von [Umwandlung von Zeichenkette in Int in Java?] (Http://stackoverflow.com/questions/5585779/converting-string-to-int-in-java) –

+1

Worüber sind Sie verwirrt? Hast du nachgeschaut, wie man da hin und zurück rechnet? – Carcigenicate

+0

Sie könnten jedes Zeichen in int über Casting konvertieren und verketten sie in einem String – aleb2000

Antwort

0

Verwenden Sie diese Methode, um Ascii Darstellung von Quellzeichenfolge zu konvertieren:

public static void main(String[] args) { 
    String source = "abc"; 
    String dest = convertToAsciiString(source); 
    System.out.println(dest); 
} 

public static String convertToAsciiString(String source) { 
    String dest = ""; 
    int index = 0; 
    while (index < source.length()) { 
     char c = source.charAt(index); 
     int charAscii = c; 
     dest += (charAscii >=100 ?charAscii : "0" + charAscii); 
     index++; 
    } 
    return dest; 
} 
+0

Der Frager scheint eine dreistellige Darstellung des ASCII zu haben: 'a' -> 097, nicht 97, in seinem Beispiel. – rossum

+0

Ok. Lösung wird aktualisiert. Gib mir Bescheid. –

0

Pause ein größeres Problem in kleinere Probleme auf. Lösen Sie jedes kleinere Problem einzeln und kombinieren Sie dann die kleinen Lösungen zu der großen Lösung für das gesamte Problem.

In diesem Fall habe ich zwei kleinere Probleme zu lösen sehen:

  1. Konvertieren eines einzelnen ASCII-Zeichen in seine Integer-Darstellung.

  2. die Integer-Darstellungen in den gesamten String Kombinieren

Dies das Gefühl von Hausaufgaben hat, so dass ich für Sie kein Programm geht zu schreiben, aber ich werde mit einigen Pseudo-Code helfen:

myString <- "abc" 
newString <- "" 

for each character thisChar in myString 
    // Here "&" is the string concatenation operator 
    newString <- newString & convertToInteger(thisChar) 
endfor 

return newString 

Das ist nicht Java, und es gibt eine Reihe von Java-spezifischen Optimierungen, die Sie in der Java-Version verwenden sollten. Du wirst sie besser lernen, wenn du sie selbst findest. Sie könnten mit Blick auf die Javadocs für die StringBuilder Klasse beginnen.

0

Sie könnten so etwas machen, dies ist die Methode, um in eine int-Darstellung der ASCII-Zeichenkette zu konvertieren. Nach diesem Beispiel können Sie die umgekehrte Methode selbst schreiben, um das Casting anders herum zu machen.

public static String convertToIntString(String str) { 
    StringBuilder builder = new StringBuilder(str.length() * 3); 
    str.chars().map(c -> (int)c).forEach(i -> builder.append((Integer.toString(i).length() == 2 ? Integer.toString(i).length() == 1 ? "00" : "0" : "") + i)); 
    return builder.toString(); 
} 

Der Code innerhalb des forEach(...) ist sicher sein, dass das Zeichen mit drei Ziffern ( 097 statt 97)

den Code Beware ich die Java-Stream API geschrieben geschrieben wird, verwendet werden, wenn Sie so arbeiten Habe Java 8 installiert.

+0

Danke aleb2000, das ist genau die Lösung, nach der ich gesucht habe –

Verwandte Themen