-1
import java.util.Scanner; 
public class Oppish_Coder2 { 

    public static void main(String[] args) { 
     String s = "bcdfghjklmnpqrstvwxz"; 
     String ss = "aeiouy"; 

     System.out.println("Enter line to encrypt: "); 

     Scanner sc = new Scanner (System.in); 
     String uncoded = sc.next(); 

     System.out.println("Encrypted line: "); 

      for (int i = 0; i < uncoded.length(); i++){ 

       for (int ii = 0; ii < s.length(); ii++){ 

        if (uncoded.charAt(i) == s.charAt(ii)){ 
         System.out.print(uncoded.charAt(i) + "op "); 
        } 
        else { 
         for (int iii = 0; iii < ss.length(); iii++){ 
          if (uncoded.charAt(i) == ss.charAt(ii)){ 
           System.out.print(uncoded.charAt(i) + " "); 
          } 
         } 
        } 
       } 
      } 
     sc.close(); 
    } 
} 

Ich habe an diesem Projekt für Spaß bei der Arbeit auf und ab, aber vor kurzem fühle ich mich, als ob ich ganz in der Nähe bin es darum geht, jedoch ein Fehler arbeiten wird geworfen und ich bin mir nicht sicher, wie ich es beheben soll. Der Zweck des Codes besteht darin, ein "op" am Ende aller Konsonanten und ein "" am Ende der Vokale hinzuzufügen. Dies wurde von einer kindlichen Art des Sprechens in Code inspiriert, so dass nur Sie und ein Freund wussten, was der andere sagte. Jede Hilfe würde sehr geschätzt werden, Danke!Java Verschlüsselung Projekt (java.lang.StringIndexOutOfBoundsException)

+1

Ich glaube nicht, dass Ihr Code, wie gepostet, ist irgendwo in der Nähe zu arbeiten. Bitte nehmen Sie sich etwas Zeit, um die Logik Ihres Vorgehens zu betrachten und Ihre Schleifen entsprechend zu korrigieren. Ich würde empfehlen, ein Tutorial zu lesen, das die Break- und Continue-Anweisungen behandelt. –

+0

In Ihrer dritten for-Schleife vergleichen Sie 'uncoded.charAt (i) == ss.charAt (ii)' anstelle von 'uncoded.charAt (i) == sscharAt (iii)'. Außerdem sollte diese Schleife nicht verschachtelt sein. Ein Rat; Verwenden Sie unterschiedliche Buchstaben als Schleifenvariablen. – Jyr

Antwort

0

Sie müssen nicht so oft wiederholen, um zu überprüfen, ob ein Zeichen in Ihrer unverschlüsselten Zeichenfolge ein Vokal oder Konsonant ist.

Ich habe Ihr Programm mit String.indexOf Methode vereinfacht. Sie überprüfen nur, ob die Buchstaben in Ihrer unverschlüsselten Zeichenkette in der Zeichenkette vowels oder consonants vorhanden sind.

Hier ist sie:

import java.util.Scanner; 

public class Oppish_Coder2 { 

    public static void main(String[] args) { 
     String consonants = "bcdfghjklmnpqrstvwxz"; 
     String vowels = "aeiouy"; 

     System.out.println("Enter line to encrypt: "); 

     Scanner sc = new Scanner(System.in); 
     String uncoded = sc.next(); 

     System.out.println("Encrypted line: "); 

     for (int i = 0; i < uncoded.length(); i++) { 
      char c = uncoded.charAt(i); 
      if (consonants.indexOf(c)>-1) { 
       System.out.print(c + "op "); 
      } else if (vowels.indexOf(c)>-1) { 
       System.out.print(c + " "); 
      } 
     } 
     sc.close(); 
    } 
} 

hoffe, das hilft!

Verwandte Themen