2017-02-12 5 views
-1

mit, unser Lehrer hat uns eine Herausforderung in Java mit den folgenden Bedingungen:Java: Konvertieren Groß- in Kleinbuchstaben und umgekehrt, ohne So Funktionen

  • Benutzereingabe eines 4 Zeichen Zeichenfolge (Buchstaben, Symbole und Zahlen , alle gemischt)
  • Wenn der Buchstabe Großbuchstaben ist, wandeln Sie ihn in Kleinbuchstaben um und umgekehrt.
  • Symbole und Zahlen bleiben gleich.
  • Drucken Sie das Ergebnis aus.

Aber die Einschränkung ist, dass Sie nicht die Funktionen nutzen können split(), length() und toUpperCase().

Mein erster Gedanke wurde mit switch und Fälle für jeden Brief, aber ich habe mich gefragt, ob es eine bessere ist (lesen Sie kürzer und intelligentere) Alternative:

public class program {   
    public static void main(String[] args){ 

     Scanner input = new Scanner(System.in); 
     String text; 

     System.out.println("Type in:"); 
     text = input.nextLine(); 

     switch(text){ 
      case "A": 
       System.out.println("a"); 
       break; 
      case "b": 
       System.out.println("B"); 
       break; 

     } 
} 

Was denken Sie?

+0

Willkommen bei StackOverflow. Bitte besuchen Sie die [Hilfe] und lesen [fragen]. StackOverflow funktioniert am besten, wenn Sie das, was Sie bisher getan haben, posten. Fragen, die wie folgt aussehen: "Bitte schreibe meinen Code für mich" (auch wenn du es nicht so vorhast), werden im Allgemeinen abgelehnt und als außerplanmäßig gehalten. Wenn Sie zeigen, was Sie versucht haben, und erklären, was nicht funktioniert (einschließlich Stack-Trace und/oder Fehlermeldungen), ist es *** viel wahrscheinlicher, dass Sie Hilfe bekommen. –

+0

Mögliches Duplikat von [Java - Konvertieren von Groß- in Kleinbuchstaben ohne Verwendung von toUppercase()] (http://stackoverflow.com/questions/16259250/java-convert-lower-to-upper-case-without-using-touppercase) – nhouser9

+0

Was würdest du nicht nutzen, um Länge zu benutzen ?! –

Antwort

-1

Sie können nur Schleife der Schnur, dann mit diesem Zustand überprüfen:

// c => ith letter in String 

if(c >='a' && c<='z') c = c-'a' + 'A'; 
else if(c>='A' && c<='Z') c = c-'A' + 'a'; 

// append c into new String 
3

Ja, es gibt einen besseren Weg. Zuerst müssen Sie prüfen, ob es ein Brief ist in Groß- oder Kleinbuchstaben, indem Sie diese:

char c; 
if(c >= 'a' && c <= 'z') { 
    c = c - 32 
} else if(c >= 'A' && c <= 'Z') { 
    c = c + 32 
} 

als ASCII-Wert von ‚A‘ 65, ‚B‘ 66 ist und so weiter, und der ASCII-Wert von "a" ist 97 und so weiter. Sie müssen die ASCII-Werte jedes Alphabets ändern. Ich hoffe das hilft.

+0

Dies ist die Art, es zu tun, beziehen Sie sich auf die ASCII-Tabelle: http://www.asciitable.com/ – Matt

+0

Yeah! Recht! Danke matt !! –

+0

müssen Sie if-else im obigen Code verwenden. – algojava

Verwandte Themen