-1

我想在这个加密器的字母表中添加字母“ç”、“ğ”、“ı”、“ö”和“ü”,也许还可以添加特殊字符。我怎样才能做到这一点?

    for (int i = 0; i < metin.length(); i++) {
        char harf = metin.charAt(i);
        if       (harf >= 'a' && harf <= 'm') harf += i;
        else if  (harf >= 'A' && harf <= 'M') harf += i;
        else if  (harf >= 'n' && harf <= 'z') harf -= i;
        else if  (harf >= 'N' && harf <= 'Z') harf -= i;
        System.out.print(harf);
    }
4

2 回答 2

2

您正在使用 Java 实习生 Char 作为整数来实现密码。一个更好的方法是String charSet = "abcdefgh.... %&/(öäüô";在你的 charSet 中使用你想要的字符。

String charset = "abcdefghijklmnopqrstuvwxyzäöü";    
for (int i = 0; i < metin.length(); i++) {
    int j = charset.indexOf(metin.charAt(i));
    if(j < -1)
    {
        //deal with unknown char
    }
    if(j == charset.length)
    {
        j=0;
    }
    System.out.print(charset.charAt(j+1);
}

我希望你能明白。

于 2012-11-14T12:47:40.280 回答
1

您可以像这样使策略更通用。

String text = "abcdefghijklmnopqrstuvwxyz0123456789!$%^&*()äöü";

for (int i = 0; i < text.length(); i++) {
    char ch = text.charAt(i);
    ch--;
    if (ch % 32 < 13)
        ch += 13;
    else if (ch % 32 < 26)
        ch -= 13;
    else if (ch % 32 < 29)
        ch += 3;
    else
        ch -= 3;
    ch++;
    System.out.print(ch);
}

印刷

nopqrstuvwxyzabcdefghijklm#$%&'()*+,.12[3756ñéÿ
于 2012-11-14T12:57:35.537 回答