2016-07-17 13 views
0

Cryptogram problem descirption photo.この割り当てのポイントは、2つのベクトルを書き込むことです。 1つのベクトルは、文字列オブジェクトの定数ベクトルを保持します。次に、この1番目のベクトルの要素を2番目のベクトルにコピーすることになっています。 2番目のベクトルは、すべての文字の代わりにアスタリスクを持つことになっています。その後、ユーザーは、置き換えたい文字を選択した文字で入力することができます。次に、2番目のベクトル(ユーザーによって変更されたもの)で最初の定数ベクトルが何であるかを連続的に表示することになっています入力されます)、残りの単語はアスタリスクになります。私の問題は、ユーザーが求めている要素を置き換え、それを再印刷すると考えられるたびに、常に「*」と同じベクトルが与えられます。誰でも問題の内容を確認できますか?任意のヒントも同様に便利です。 (私はまだJavaとベクトルの初心者です)。ここで割り当てが尋ねる何も次の場合暗号化ベクトルが機能しない

import java.util.Collections; 
import java.util.Scanner; 
import java.util.Vector; 

public class Cryptogram { 
public static void main(String args[]){ 
    Scanner input = new Scanner(System.in); 
    String word = new String("X AQC'M YCQO OKJM BQG OJCM 
    DGM X SJC'M WXZP XM JCB TQVP"); 
    final Vector<String> vec = new Vector<String>(); 
    for(int i=0; i<word.length(); i++){ 
     vec.add(i, Character.toString(word.charAt(i))); 
    } 
    Vector<String> vec2 = new Vector<String>(); 
    for(int i=0; i<vec.size(); i++){ 
     System.out.print(vec.elementAt(i)); 
     vec2.add(i, vec.elementAt(i)); 
    } 
    System.out.print("\n"); 
    Collections.fill(vec2,"*"); 
    vec2.set(1, " "); 
    vec2.set(5, "'"); 
    vec2.set(7, " "); 
    vec2.set(12, " "); 
    vec2.set(17, " "); 
    vec2.set(21, " "); 
    vec2.set(26, " "); 
    vec2.set(30, " "); 
    vec2.set(32, " "); 
    vec2.set(36, "'"); 
    vec2.set(38, " "); 
    vec2.set(43, " "); 
    vec2.set(46, " "); 
    vec2.set(50, " "); 
    for(int i=0; i<vec2.size(); i++){ 
     System.out.print(vec2.elementAt(i)); 
    } 
    boolean flag = true; 
    String letter_replace; 
    String new_letter; 
    System.out.print("\n \n"); 
    while(flag){ 
     System.out.print("Replace a letter from encoded message: "); 
     letter_replace = input.nextLine(); 
     System.out.print("Replace with which letter (A-Z,*): "); 
     new_letter = input.nextLine(); 
     System.out.print("\n"); 
     for(int i=0; i<vec2.size(); i++){ 
      System.out.print(vec.elementAt(i)); 
     } 
     System.out.print("\n"); 
     for(int i=0; i<vec2.size(); i++){ 
      if(vec2.elementAt(i)==letter_replace){ 
       vec2.setElementAt(new_letter, i); 
      } 
      System.out.print(vec2.elementAt(i)); 
     } 
     System.out.print("\n \n"); 
    } 
} 
} 
+0

たということでした(vec2.elementAt(i)== letter_replace) オブジェクトを比較するときは、参照がオブジェクトではなく等しい場合に比較するために常に.equalsを使用する必要があります。 – Kariem

+0

これを実行しましたが、アスタリスクの行としてまだvec2を表示しています。あなたが私を助けるために私を呼び出すことができるものはありますか? –

答えて

0

あなたの問題は、あなたがVECで検索されている必要がありながら、(アスタリスクベクトル)VEC2で検索(エンコードされたメッセージ)

import java.util.Collections; 
import java.util.Scanner; 
import java.util.Vector; 

public class Cryptogram { 
public static void main(String args[]){ 
    Scanner input = new Scanner(System.in); 
    String word = new String("X AQC'M YCQO OKJM BQG OJCM DGM X SJC'M WXZP XM JCB TQVP"); 
    final Vector<String> vec = new Vector<String>(); 
    for(int i=0; i<word.length(); i++){ 
     vec.add(i, Character.toString(word.charAt(i))); 
    } 
    Vector<String> vec2 = new Vector<String>(); 
    for(int i=0; i<vec.size(); i++){ 
     System.out.print(vec.elementAt(i)); 
     vec2.add(i, vec.elementAt(i)); 
    } 
    System.out.print("\n"); 
    Collections.fill(vec2,"*"); 
    vec2.set(1, " "); 
    vec2.set(5, "'"); 
    vec2.set(7, " "); 
    vec2.set(12, " "); 
    vec2.set(17, " "); 
    vec2.set(21, " "); 
    vec2.set(26, " "); 
    vec2.set(30, " "); 
    vec2.set(32, " "); 
    vec2.set(36, "'"); 
    vec2.set(38, " "); 
    vec2.set(43, " "); 
    vec2.set(46, " "); 
    vec2.set(50, " "); 
    for(int i=0; i<vec2.size(); i++){ 
     System.out.print(vec2.elementAt(i)); 
    } 
    boolean flag = true; 
    String letter_replace; 
    String new_letter; 
    System.out.print("\n \n"); 
    while(flag){ 
     System.out.print("Replace a letter from encoded message: "); 
     letter_replace = input.nextLine(); 
     System.out.print("Replace with which letter (A-Z,*): "); 
     new_letter = input.nextLine(); 
     System.out.print("\n"); 
     for(int i=0; i<vec2.size(); i++){ 
      System.out.print(vec.elementAt(i)); 
     } 
     System.out.print("\n"); 
     for(int i=0; i<vec.size(); i++){ 
      if(vec.elementAt(i).equals(letter_replace)){ 
       vec2.setElementAt(new_letter, i); 
      } 
      System.out.print(vec2.elementAt(i)); 
     } 
     System.out.print("\n \n"); 
    } 
} 
} 
関連する問題