2016-08-12 2 views
2

Ich versuche, eine Sache zu kodieren, die Ihren Namen in Zahlen ändert, und ich bin mir nicht sicher, ob ich darüber den einfachsten oder sogar den hellsten Weg gehe. Ich bin wirklich neu im Programmieren.Ich versuche, eine Namenseingabe in Zahlen zu konvertieren

public class Project1 { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    // TODO code application logic here 
    char ch1 = 'a'; 
    char ch2 = 'b'; 
    char ch3 = 'c'; 
    char ch4 = 'd'; 
    char ch5 = 'e'; 
    char ch6 = 'f'; 
    char ch7 = 'g'; 
    char ch8 = 'h'; 
    char ch9 = 'i'; 
    char ch10 = 'j'; 
    char ch11 = 'k'; 
    char ch12 = 'l'; 
    char ch13 = 'm'; 
    char ch14 = 'n'; 
    char ch15 = 'o'; 
    char ch16 = 'p'; 
    char ch17 = 'q'; 
    char ch18 = 'r'; 
    char ch19 = 's'; 
    char ch20 = 't'; 
    char ch21 = 'u'; 
    char ch22 = 'v'; 
    char ch23 = 'w'; 
    char ch24 = 'x'; 
    char ch25 = 'y'; 
    char ch26 = 'z'; 

    int num1 = ch1 - 'a' + 1; 
    int num2 = ch2 - 'a' + 1; 
    int num3 = ch3 - 'a' + 1; 
    int num4 = ch4 - 'a' + 1; 
    int num5 = ch5 - 'a' + 1; 
    int num6 = ch6 - 'a' + 1; 
    int num7 = ch7 - 'a' + 1; 
    int num8 = ch8 - 'a' + 1; 
    int num9 = ch9 - 'a' + 1; 
    int num10 = ch10 - 'a' + 1; 
    int num11 = ch11 - 'a' + 1; 
    int num12 = ch12 - 'a' + 1; 
    int num13 = ch13 - 'a' + 1; 
    int num14 = ch14 - 'a' + 1; 
    int num15 = ch15 - 'a' + 1; 
    int num16 = ch16 - 'a' + 1; 
    int num17 = ch17 - 'a' + 1; 
    int num18 = ch18 - 'a' + 1; 
    int num19 = ch19 - 'a' + 1; 
    int num20 = ch20 - 'a' + 1; 
    int num21 = ch21 - 'a' + 1; 
    int num22 = ch22 - 'a' + 1; 
    int num23 = ch23 - 'a' + 1; 
    int num24 = ch24 - 'a' + 1; 
    int num25 = ch25 - 'a' + 1; 
    int num26 = ch26 - 'a' + 1; 



    String name = JOptionPane.showInputDialog(null,"Enter your name:"); 

    System.out.println("your name is: " +name); 
} 
} 
+2

A) Nein, wie Sie bereits können sehen Sie von der ersten Antwort an, Sie verkomplizieren sehr viel Dinge. B) Bitte haben Sie Verständnis, dass Fragen wie diese ... eigentlich nicht hierher gehören. Einfach Code posten und fragen "Bin ich auf dem richtigen Weg" passt hier nicht. Dieser Ort ist für spezifische Probleme, wie "Ich stecke genau hier, wie mache ich das, oder warum funktioniert das hier nicht und gib mir diesen Fehler". – GhostCat

Antwort

0

Sie dies in einer viel einfacheren Weg machen kann.

Da Sie nicht gesagt haben wie Sie die Zeichenfolge in eine Zahl/Zahlen konvertieren möchten. Ich gebe Ihnen ein paar Optionen zur Auswahl.

Zuerst können Sie hashCode verwenden. Diese Methode gibt einen eindeutigen Wert für jede eindeutige Zeichenfolge:

String name = JOptionPane.showInputDialog(null,"Enter your name:"); 

System.out.println("your name is: " + name.hashCode()); 

Also, wenn ich „Libero“ und „Libero“ eingeben, wird der Ausgang gleich sein:

your name is: -143341447 

Alternativ können Sie jede konvertieren Zeichen an den ASCII-Code entspricht char zu int durch Gießen:

String name = JOptionPane.showInputDialog(null,"Enter your name:"); 
char[] chars = name.toCharArray(); 
System.out.print("your name is: "); 
for (char c : chars) { 
    System.out.print((int)c); 
    System.out.print(" "); 
} 

Eingabe von "Kehrmaschine" ausgegeben:

your name is: 83 119 101 101 112 101 114 

Eine andere Methode ist die ASCII-Werte addieren:

String name = JOptionPane.showInputDialog(null,"Enter your name:"); 
char[] chars = name.toCharArray(); 
System.out.print("your name is: "); 
int sum = 0; 
for (char c : chars) { 
    sum += (int)c; 
} 
System.out.println(sum); 

"Sweeper" als Eingabe erzeugt:

your name is: 731 

Sie können auch az und AZ setzen in einem HashMap<Character, Integer> zu geben Jedes Zeichen Ihren benutzerdefinierten Wert:

HashMap<Character, Integer> map = new HashMap<>(); 
map.put('a', 1); 
map.put('b', 2); 
map.put('c', 3); 
map.put('d', 4); 
map.put('e', 5); 
// and so on... 

String name = JOptionPane.showInputDialog(null,"Enter your name:"); 
char[] chars = name.toCharArray(); 
System.out.print("your name is: "); 
for (char c : chars) { 
    System.out.print(map.get(c)); 
    System.out.print(" "); 
} 
+0

Für Ihre zweite Methode, warum druckt es nicht die Zahl, die ich meine int-Werte zu mögen, wenn ich in n puts 110 und nicht 14 ausgibt? –

+0

@ NicholasDrolet-Mercier es ist nicht die zweite Methode druckt die ASCII-Werte. Versuchen Sie die letzte Methode, wenn Sie Ihre eigenen Werte drucken möchten. – Sweeper

0

Versuchen Sie, diese

String name = "abc"; 
char[] chars = name.toCharArray(); 
for (char c : chars) { 
    System.out.print(c-'a'+1); 
} 
Verwandte Themen