如何通过HashMap发送文本?

问题描述:

如何通过hashmap传递“toEncrypt”文本并将其显示在“encrypted”标签上?这一直困扰着我。我只能得到用户想要加密的内容,而不需要加密。如何通过HashMap发送文本?

@FXML 
Button encrypt; 
@FXML 
Label encrypted; 
@FXML 
TextField toEncrypt; 

@FXML 
private void encryptButton(ActionEvent event) { 
encrypted.setText(toEncrypt.getText()); 
} 

@FXML 
private void secretMessage (ActionEvent event) { 

    HashMap<String,String> secret = new HashMap<String, String>(); 


    //*****UPPER CASE LETTERS***** 
    secret.put("A","9"); 
    secret.put("B","J"); 
    secret.put("C","Q"); 
    secret.put("D","1"); 
    secret.put("E","T"); 
    secret.put("F","B"); 
    secret.put("G","Z"); 
    secret.put("H","R"); 
    secret.put("I","t"); 
    secret.put("J","m"); 
    secret.put("K","q"); 
    secret.put("L","p"); 
    secret.put("M","o"); 
    secret.put("N","3"); 
    secret.put("O","v"); 
    secret.put("P","y"); 
    secret.put("Q","X"); 
    secret.put("R","z"); 
    secret.put("S","l"); 
    secret.put("T","S"); 
    secret.put("U","5"); 
    secret.put("V","w"); 
    secret.put("W","C"); 
    secret.put("X","K"); 
    secret.put("Y","8"); 
    secret.put("Z","n"); 
    //********************** 


@Override 
public void initialize(URL url, ResourceBundle rb) { 
    // TODO 
}  
+0

'通过HashMap发送文本'没有意义,请澄清你的问题。 – EJP

很高兴看到你已经尝试过;所以我不仅仅提供了一个完整的工作答案,我只是想指出一些应该让你去做的概念。

对于“通过HashMap”步骤中,您可以在String遍历char就像这样:

final String toEncryptString = toEncrypt.getText(); 
final char[] encrypted = new char[toEncryptString.length()]; 
for (int i = 0; i < toEncryptString.length(); i++) { 
    final char c = toEncryptString.charAt(i); 
    final char e; 
    // TODO - Set 'e' from getting the value from the HashMap 
    encrypted[i] = e; 
} 
return new String(encrypted); 

我会假设你设置这个地方,但你不在您共享的代码中设置encryptButton的逻辑。 ButtonsetOnAction,你应该能够与像这里使用:

encrypt.setOnAction(this::encryptButton); 

你只需要找个地方设置此将总是运行您尝试使用Button之前。

最后,我没有提及将HashMap构建为方法的一部分似乎很奇怪(每次尝试加密某些东西时都必须这样做),这将是我的疏忽。有了这一套作为字段(或类似 - static场,隐藏在实用程序类,通过static char getEncrypted(final char given) { return map.get(given); }访问)将是更高性能的(尽管确保你在你去任何溶液处理潜在null小号

希望。那会让你开始吧