制作加密程序,我得到sytnax错误,但我不知道为什么

时间:2017-01-05 04:19:52

标签: java encryption

目前我正在尝试创建一个基本程序,它接受任何字符串的输入,如句子或段落,它需要每个字母并将其转换为3字符代码一旦我得到这个工作,我假设我应该只是能够反过来并让它采取3位数代码并将其转回文本,无论如何,当我尝试编译程序来测试它时我得到一个错误。我有下面标出的问题。也有一旦我得到程序正常工作,我想在你输入输入的地方制作一个gui,它会在你点击一个按钮之后显示输出,但是我刚刚开始这对我来说似乎是一个但对我而言如果你知道的话任何好的教程请告诉我!

import java.util.Scanner;
import java.util.*;
class test {
private static Scanner inp;
public static void main(String[] args) {
    Map <Character, String> encryptionMappings = new HashMap<>();
    encryptionMappings.put('a',"{qaz}");
    encryptionMappings.put('b',"{wsx}");
    encryptionMappings.put('c',"{edc}");
    encryptionMappings.put('d',"{rfv}");
    encryptionMappings.put('e',"{tgb}");
    encryptionMappings.put('f',"{yhn}");
    encryptionMappings.put('g',"{ujm}");
    encryptionMappings.put('h',"{ik,}");
    encryptionMappings.put('i',"{ol>}");
    encryptionMappings.put('j',"{p;?}");
    encryptionMappings.put('k',"{[']}");
    encryptionMappings.put('l',"{qwe}");
    encryptionMappings.put('m',"{asd}");
    encryptionMappings.put('n',"{zxc}");
    encryptionMappings.put('o',"{rty}");
    encryptionMappings.put('p',"{fgh}");
    encryptionMappings.put('q',"{vbn}");
    encryptionMappings.put('r',"{yui}");
    encryptionMappings.put('s',"{hjk}");
    encryptionMappings.put('t',"{nm,}");
    encryptionMappings.put('u',"{iop}");
    encryptionMappings.put('v',"{qaw}");
    encryptionMappings.put('w',"{sxz}");
    encryptionMappings.put('x',"{red}");
    encryptionMappings.put('y',"{cvf}");
    encryptionMappings.put('z',"{ytg}");
    encryptionMappings.put('A',"{hnb}");
    encryptionMappings.put('B',"{iuj}");
    encryptionMappings.put('C',"{kml}");
    encryptionMappings.put('D',"{opl}");
    encryptionMappings.put('E',"{wom}");
    encryptionMappings.put('F',"{wsv}");
    encryptionMappings.put('G',"{ths}");
    encryptionMappings.put('H',"{imv}");
    encryptionMappings.put('I',"{ybf}");
    encryptionMappings.put('J',"{cja}");
    encryptionMappings.put('K',"{thw}");
    encryptionMappings.put('L',"{maz}");
    encryptionMappings.put('M',"{pqa}");
    encryptionMappings.put('N',"{zwl}");
    encryptionMappings.put('O',"{;ld}");
    encryptionMappings.put('P',"{'d;}");
    encryptionMappings.put('Q',"{;ny}");
    encryptionMappings.put('R',"{;ws}");
    encryptionMappings.put('S',"{c/.}");
    encryptionMappings.put('T',"{%@^}");
    encryptionMappings.put('U',"{/mc}");
    encryptionMappings.put('V',"{uka}");
    encryptionMappings.put('W',"{zby}");
    encryptionMappings.put('X',"{&hd}");
    encryptionMappings.put('Y',"{&hw}");
    encryptionMappings.put('Z',"{^#^}");
    encryptionMappings.put('0',"{$g%}");
    encryptionMappings.put('1',"{^@%}");
    encryptionMappings.put('2',"{142}");
    encryptionMappings.put('3',"{243}");
    encryptionMappings.put('4',"{089}");
    encryptionMappings.put('5',"{756}");
    encryptionMappings.put('6',"{423}");
    encryptionMappings.put('7',"{312}");
    encryptionMappings.put('8',"{145}");
    encryptionMappings.put('9',"{187}");
    encryptionMappings.put('~',"{)*(}");
    encryptionMappings.put('`',"{$#%}");
    encryptionMappings.put('!',"{!^#}");
    encryptionMappings.put('@',"{@^&}");
    encryptionMappings.put('#',"{^@&}");
    encryptionMappings.put('$',"{!?*}");
    encryptionMappings.put('%',"{^<+}");
    encryptionMappings.put('^',"{+$$}");
    encryptionMappings.put('&',"{!!*}");
    encryptionMappings.put('*',"{((%}");
    encryptionMappings.put('(',"{*&^}");
    encryptionMappings.put(')',"{$%^}");
    encryptionMappings.put('_',"{&#^}");
    encryptionMappings.put('-',"{<>?}");
    encryptionMappings.put('=',"{:'^}");
    encryptionMappings.put('{',"{%%G}");
    encryptionMappings.put('}',"{$$$}");
    encryptionMappings.put('[',"{***}");
    encryptionMappings.put(']',"{:::}");
    encryptionMappings.put(':',"{#$%}");
    encryptionMappings.put('|',"{?H*}");
    encryptionMappings.put(';',"{B&&}");
    encryptionMappings.put('"',"{@gs}");
    encryptionMappings.put('?',"{^gl}");
    encryptionMappings.put('/',"{@gn}");
    encryptionMappings.put('<',"{%TG}");
    encryptionMappings.put('>',"{5%5}");
    encryptionMappings.put(',',"{yty}");
    encryptionMappings.put('.',"{ggg}");

    inp = new Scanner(System.in);
    System.out.println("Input Password");
    int n = inp.nextInt();

    if(n!=234) {
        System.out.println("Denied Acess");
    } else { 
        System.out.print("Password Accepted"
                + "               ");
    System.out.print("Input Text to encrypt: ");

    String m = inp.next();
    String encryptMe = "He";
    StringBuilder builder = new StringBuilder();

下面的行是显示“toCharArray”的语法错误的那一行我不知道为什么,我刚开始学习java所以如果它的东西很简单,我很遗憾对不起,任何和所有的帮助是apreciated。

    for (Character c : encryptMe.toCharArray) {
      builder.append(encryptionMappings.get(c));
    }
    String encrypted = builder.toString();
    }
}

1 个答案:

答案 0 :(得分:4)

您正尝试在对象上调用方法,但缺少需要遵循()的空toCharArray。有些语言允许您省略空括号,但Java不是其中之一。你应该使用:

for (Character c : encryptMe.toCharArray()) {
  builder.append(encryptionMappings.get(c));
}

一个好的IDE(Eclipse,Intellij IDEA,Netbeans等)将帮助您在学习时捕获这些语法错误。