2017-04-09 6 views
1

文字列、ループ、および文字を使用して単純な暗号化を試みています。文章をループして文字をキーで置き換えることによって、文字列内の大文字の文字を置き換える方法を知る必要があります。ループとキーによるJava暗号化?

かの下に
String capitalize = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
String lower = "abcdefghijklmnopqrstuvwxyz"; 
String num = "1234567890"; 
String user = "Hello World 123 (456)."; 

String encrypt = ""; 
for (int x = 0; x < user.length(); x++) 
{ 
    char c = user(x); 
    if (Character.isUpperCase(c)) 
    { 
     Replace the upper case letters here. 
    } 

//より多くのコードが、あなたがする必要がありますいずれかの文字列userを文字に変換するよう

+2

あなたは、おそらく私はちょうど答えたその他の質問を見てみたい:http://stackoverflow.com/questions/43310535/adding-to-ascii-code-during-forそれを超えて - そのような変換は、「そのようなことを学ぶ」という点でのみ有効であることに留意してください。このようなシンプルなスキームに基づいて構築されたものは、**暗号化**と呼ぶことはできません。 – GhostCat

+0

["Schneier's Law"](https://www.schneier.com/blog/archives/2011/04/schneiers_law.html):最も無礼なアマチュアから最高の暗号技術者まで、誰でも自分自身のアルゴリズムを作成できます壊れることはありません。 – zaph

答えて

1

文字列を行く事は、Javaで不変で取得する最初の部分で助けを必要と配列user.toCharArray()を実行してから、配列の構文で文字を操作し、Stringに変換し直すか、新しいStringを作成して最初のものをループしながら文字を追加します。後者の場合は、StringBuilderまたはconcat演算子+(StringBuilderも使用します)を使用できます。

StringBuilder builder = new StringBuilder(); 

for (char c : user.toCharArray()) { 
    if (Character.isUpperCase(c)){ 
    builder.append(NEW_CHAR); //NEW_CHAR = char you want to replace c with 
    } 
    else { 
    builder.append(c) 
    } 
} 
return builder.toString(); 

または

char[] userArr = user.toCharArray(); 
for (int i = 0; i < userArr.length; ++i) { 
if(Character.isUpperCase(user[i]) { 
    user[i] = NEW_CHAR; //NEW_CHAR = char you want to replace user[i] with 
} 
} 
return String.valueOf(userArr); 
+0

ここでNEW_CHARは –

+0

から来ています。文字を変更したい場所のプレースホルダです。明快に編集します –

関連する問題