我是新來的Java和一般編碼,並且正在爲一個類進行密碼學項目。我創建了一個代碼,首先將字母轉換爲數字例如a=1
,b=2
等。下一部分通過分配數字來添加或減去編碼消息中的下一個字符,從而使數字混亂。 (參見圖片attatched)信號和混雜編號Java - 如何添加到字符串中的字符
Character Letter Number Jumble Number
_______________|_______________________|_______________
A 1 +3
B 2 -1
C 3 +2
D 4 +5
E 5 -3
實施例因此,作爲一個例子,假設需要被髮送的消息是「ABCDE」。所以「a」的數字是1,但它也帶有一個「+3」,它將被添加到下一個字符的數字中,所以不是2,它將是5,依此類推。最後的信息將顯示爲「1,5,2,6,10」。
到目前爲止,我已經能夠將字母轉換爲數字,但不知道如何繼續對已經從字母轉換的數字加/減數字。這是迄今爲止我所擁有的。
import java.util.HashMap;
import java.util.Map;
public class CodeApp
{
public static void main(String[] args)
{
final Map<Character, Integer> map;
final String str = "hello world";
// Message to be encoded goes here
map = new HashMap<>();
map.put('a', 1);
map.put('b', 2);
map.put('c', 3);
map.put('d', 4);
map.put('e', 5);
map.put('f', 6);
map.put('g', 7);
map.put('h', 8);
map.put('i', 9);
map.put('j', 10);
map.put('k', 11);
map.put('l', 12);
map.put('m', 13);
map.put('n', 14);
map.put('o', 15);
map.put('p', 16);
map.put('q', 17);
map.put('r', 18);
map.put('s', 19);
map.put('t', 20);
map.put('u', 21);
map.put('v', 22);
map.put('w', 23);
map.put('x', 24);
map.put('y', 25);
map.put('z', 26);
// This code is inefficient like this because I eventually plan to scramble the order of the numbers in relation to the letters, like a=23, b=5, c=15, etc.
for(final char c : str.toCharArray())
{
final Integer val;
val = map.get(c);
if(val == null)
{
// some sort of error
}
else
{
System.out.print(val + " ");
}
}
System.out.println();
}
}
任何和所有的幫助,非常感謝!
哪裏了'+ 3'從何而來? – Ian2thedv
如果我理解正確,您提供的圖像中的「+3,-1,+2,+5,-3」可以同化到[key](https://en.wikipedia.org/wiki/Key_ %28cryptography%29)的密碼系統? – Spotted
另外,如果'e'是純文本消息的最後一個字符,那麼它的相關數字(在本例中爲'-3')就沒用了,對吧? – Spotted