-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(); 
    } 
} 

私は上の楽しみのために、このプロジェクトに取り組んとオフが、最近、私はそれが動作するように得るために非常に近いんだかのようしかし、エラーがされていると感じてきましたスローされ、私はそれを修正する方法についてはよく分かりません。コードの目的は、任意の子音の末尾に "op"を、母音の最後に "op"を追加することです。これはコードでの小児期の話し方に触発されたので、あなたと友人だけが他の人が何を言っているかを知っていました。どんな助けでも大歓迎です、ありがとう!のJava暗号化プロジェクト(java.lang.StringIndexOutOfBoundsException)

+1

あなたのコードは、掲載されているように、どこにいても動作しているとは思いません。あなたがやろうとしていることの論理を考えて、それに応じてループを修正するには、しばらく時間をかけてください。 'break'文と' continue'文を扱うチュートリアルを読むことをお勧めします。 –

+0

3回目のforループで、 'uncoded.charAt(i)== ss.charAt(iii)'の代わりに 'uncoded.charAt(i)== ss.charAt(ii)'を比較しています。さらに、そのループはネストしてはいけません。アドバイスの言葉;別の文字をループ変数として使用します。 – Jyr

答えて

0

コード化されていない文字列内の文字が母音か子音かを確認するために何回もループする必要はありません。

String.indexOfメソッドを使用してプログラムを簡略化しました。コード化されていない文字列内の文字がvowels文字列かconsonants文字列内にあるかどうかをチェックするだけです。

ここでは、次のとおりです。

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(); 
    } 
} 

は、この情報がお役に立てば幸い!