使用方法在java中加密数字

使用方法在java中加密数字,java,encryption,methods,Java,Encryption,Methods,我目前正在做一个项目,我不明白为什么我的第二种方法不起作用。我正在尝试将用户输入的号码更改为其他号码。每个数字应该加上+7,然后除以10。第一个和第三个数字应该互换,第二个和第四个数字也应该互换。它应该接受四个数字,并分别处理每个数字。我不知道如何得到教授要求的结果。他说1234的结果应该是0189,但不管我如何交换它们,我都会得到13。。。我曾试图修改该方法以分离数字,然后执行所需的数学运算,但现在的结果是14。。。 我也不明白如何让编译器在数字的开头返回一个零,或者如何防止它在返回数字时删除

我目前正在做一个项目,我不明白为什么我的第二种方法不起作用。我正在尝试将用户输入的号码更改为其他号码。每个数字应该加上+7,然后除以10。第一个和第三个数字应该互换,第二个和第四个数字也应该互换。它应该接受四个数字,并分别处理每个数字。我不知道如何得到教授要求的结果。他说1234的结果应该是0189,但不管我如何交换它们,我都会得到13。。。我曾试图修改该方法以分离数字,然后执行所需的数学运算,但现在的结果是14。。。 我也不明白如何让编译器在数字的开头返回一个零,或者如何防止它在返回数字时删除数字开头的零。 任何帮助都将不胜感激,但请不要因为我不理解这项任务而怨恨我

import java.util.*;

public class SeayJ_program2
{
  static Scanner input = new Scanner (System.in);
  public static void main (String [] args)
  {


  int num = getnum(); 

  System.out.println(encrypt(num));

  }
  // methods are here  
  public static int getnum()
  {
  int num;

     System.out.println("Please enter a four digit number");
     num = input.nextInt();

  return num;    
  }


  public static int encrypt(int num)
  {
    int digit1, digit2, digit3, digit4;
    digit4 = num % 10;
    num = num / 10;
    digit4 = (num + 7) / 10;
    digit3 = num % 10;
    num = num / 10;
    digit3 = (num + 7) / 10;
    digit2 = num % 10;
    num = num / 10;
    digit2 = (num + 7) / 10;
    digit1 = num % 10;
    num = num / 10;
    digit1 = (num + 7) / 10;
    return digit3 + digit4 + digit1 + digit2;
  }

  }  

您可以在这里使用,您可以调用mask和unmask

这应该可以用于获取加密号码。 思考如何处理丢失的零


}

他到底为什么要你在除以10之前加7?前导零只存在于整数值的ASCII表示中。请理解两者之间的区别。无论如何,请尝试颠倒数字顺序。四位数序列中的每个数字必须分开,增加7,然后除以10。他说这就是应该如何加密的。我认为你误解了这个问题,因为你是如何从
1234
得到
0819
?我看不到这里的数学。我不认为我应该偏离说明太远。他希望它使用上面的方法。好的,我理解需要将必须移动的数字乘以它们各自将占据的位置。这使我不必使用除法和模来分隔数字。现在我必须弄清楚如何把这个整数作为字符串读入,这样我才能得到我的零。非常感谢。
public static int encrypt(int number){
    int temp = number;
    int digit4 = (temp + 7) % 10;
    temp = temp / 10;
    int digit3 = (temp + 7) % 10;
    temp = temp / 10;
    int digit2 = (temp + 7) % 10;
    temp = temp / 10;
    int digit1 = (temp + 7) % 10;
    return (digit3 * 1000 + digit4 * 100 + digit1 * 10 + digit2);