Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从我的代码中加密文本?_Java_Encryption_For Loop_Char - Fatal编程技术网

Java 如何从我的代码中加密文本?

Java 如何从我的代码中加密文本?,java,encryption,for-loop,char,Java,Encryption,For Loop,Char,我已经将此代码用于加密文本并将新文本放置在TextView中。我当时正在想办法做几件事 如何使每个字母=

我已经将此代码用于加密文本并将新文本放置在TextView中。我当时正在想办法做几件事

  • 如何使每个字母=<29,因为只有那么多字母(在丹麦)

  • 如何将第一个字母改成一种方式,第二个字母改成另一种方式,第三个字母改成另一种方式。下一个字母,第4个,应该像第1个字母那样更改,第5个像第2个一样,依此类推,例如“that”change 1,2,3=“ujdu”

    C=Integer.valueOf(CESARNR);
    String initialString=yourString.getText().toString();
    char[]chars=initialString.toCharArray();
    对于(int i=0;i

  • 我相信您希望对前3个字母中的每一个使用不同的Ceasar键,然后对下一组三个字母重复相同的Ceasar键,依此类推,对吗

    我不能100%确定如何处理不仅仅是我经常处理的字母表中的标准26个字符,但处理这个问题的一种方法是按照列表中的字符顺序列出一个列表。如果这样做,请确保将字符串切换为所有小写,这样,如果有大写字母,就不会出现匹配错误

    请不要,我无法测试下面的代码,因此其中可能很容易出现错误(包括语法错误),我认为它应该可以工作,但您应该能够使它更优雅(例如,for中的那些if都有点难看),并且应该将一些内容移到它们自己的方法中

    List<String> characters = new ArrayList<String>();
    ...Fill the List with the alphabet in order here (best to do in it's own method)
    String initialString = yourString.getText().toString().toLowercase();
    char[] chars = initialString.toCharArray();
    for (int i = 1; i <= chars.length; i++) {
        C = Integer.valueOf(ceasarNr1);
        if ( i%2 ==0 ) C = Integer.valueOf(ceasarNr2);
        if ( i%3 ==0 ) C = Integer.valueOf(ceasarNr3);
    
        chars[i-1] = characters.get((characters.indexOf(chars[i-1]) + C)%29);
    }
    String resultString = new String(chars);
    krypteredeTekst.setText(resultString);
    
    List characters=new ArrayList();
    …在列表中按顺序填写字母表(最好使用自己的方法)
    String initialString=yourString.getText().toString().toLowercase();
    char[]chars=initialString.toCharArray();
    
    对于(int i=1;我想知道答案:)我会在下班回家后测试它^^我曾尝试在我的代码中插入它,但它在“characters.get”((characters.indexOf(chars[i-1])+C)%29)处说“不能从字符串转换为字符”;它还说它不能在字符串上使用.toLowerCase():PtoLowerCase()应该在字符串上工作,字符串到字符的转换只是我搞砸了,哈哈。我想这是编码字符插入字符数组的那一行。就像我说的,我没有编译或测试这个,所以我肯定会有错误。只要切换,从字符切换到字符串(或从字符串切换到字符),在任何地方它都会抱怨。最简单的方法是简单地将列表变成一个列表并处理它。请注意,这是字符包装器对象的列表,而不是字符基元类型当前代码有什么问题?
    List<String> characters = new ArrayList<String>();
    ...Fill the List with the alphabet in order here (best to do in it's own method)
    String initialString = yourString.getText().toString().toLowercase();
    char[] chars = initialString.toCharArray();
    for (int i = 1; i <= chars.length; i++) {
        C = Integer.valueOf(ceasarNr1);
        if ( i%2 ==0 ) C = Integer.valueOf(ceasarNr2);
        if ( i%3 ==0 ) C = Integer.valueOf(ceasarNr3);
    
        chars[i-1] = characters.get((characters.indexOf(chars[i-1]) + C)%29);
    }
    String resultString = new String(chars);
    krypteredeTekst.setText(resultString);