2017-01-17 8 views
-3

私は入力されたメッセージを取って、各文字のUnicode値に2を加えてから、それを印刷して、単語間のスペースを含めて問題があります。フレーズがチーズピザの場合、 "ejggj"が印刷され、スペースで停止します。これをどうやって解決するのですか?エンコードされたメッセージにスペースを入れるにはどうすればいいですか?

package exercises; 
import java.util.Scanner; 
public class Ex10 { 

     public static void main(String[] args) { 
      Scanner scanner = new Scanner(System.in); 
       //Ask for message 
       System.out.println("Enter a string: "); 
       String message = scanner.next(); 

       char[] array = message.toCharArray(); 

       //Encode message 
       for(int i = 0; i < array.length; i++) 
       { 
        char letter; 
        letter = array[i]; 
        if (array[i] =='y') 
        { 
         array[i] = 'a'; 
        } 
        else if (array[i] == 'z') 
        { 
         array[i] = 'b'; 
        } 
        else if (array[i] == letter) 
        { 
         letter += 2; 
         array[i] = letter; 
        } 
        else 
        { 
         letter = ' '; 
        } 
       } 
       //Give back encoded message 
       System.out.print("Encoded message: "); 
       System.out.println(array); 
     }//main 
    }//class 
+0

'if(文字== '')続行; ' –

答えて

1

Mohsen_Fatemiが部分的に間違っている次の繰り返しに進みます。この質問の範囲では、彼は完全に間違っています。

文章の欠落部分に関するあなたの問題は、あなたのループとその状態からではなく、あなたのスキャナの使用から来ます。

scanner.next()メソッドは、スペース、タブ、または改行のいずれであっても、空白に遭遇するまで読み取ります。あなたは完全な入力を得るためにnextLine()を使う必要があります。

あなたのアルゴリズムはMohsen_Fatemiです。しかし、この質問はそれに関するものではありませんでした。しかし、彼の入力を却下しないでください。

+0

Bruno Delorありがとう!私はあなたが何を意味したのか理解しています。私のプログラムは今働いている。 –

+0

ようこそ。 javaの公式文書を読むことを躊躇しないでください。また、スキャナクラスが提供するさまざまな方法を見てください。 Scannerの仕組みを簡単に理解できましたが、他のものをデリミタとして使用するよう指示されています。デフォルトでは空白になりますが、他の文字に設定することもできます(CSVファイルを読み込む効率的な方法ではないのにCSVを読むなど) –

+0

@BrunoDelorは私の名前をもう一度言います:) –

0

変更あなたのコードはintこの方法は、あなたがあなたの文字列にスペースがあるとき脱出したいので、私たちは、空白文字は、我々はループのこのラウンドをスキップ見たとき、私は条件if(array[i]==' ') continue;を追加してきたし、

for(int i = 0; i < array.length; i++) { 
     if (array[i] =='y'){ 
      array[i] = 'a'; 
     }else if (array[i] == 'z'){ 
      array[i] = 'b'; 
     }else{ 
      if(array[i]==' ') continue; 
      array[i] += 2; 
     } 
} 
+0

@I。あなたがそれが本当であると分かったら、私の答えを真としてください、ありがとうございます。 –

+0

あなたは彼の質問に答えていません。彼のアルゴリズムは正しいですが、彼の問題はどこかにありました。 –

+0

@ BrunoDelorzoro ... –

関連する問題