Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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 在不重新指定原始字符串值的情况下,将int值推入字符串_Java_Rsa - Fatal编程技术网

Java 在不重新指定原始字符串值的情况下,将int值推入字符串

Java 在不重新指定原始字符串值的情况下,将int值推入字符串,java,rsa,Java,Rsa,所以我有一个值,它作为一个整数从一个类返回,并且根据输入的文本的长度执行多次。我可以打印出每个字符的输出,但我想将输出合并成一个字符串。这是输出的一个示例 输入纯文本:hi H的值为7 加密值为721,解密值为7 I的值是8 加密值为330,解密值为8 我希望它打印出最终的密码文本721330,以便它将其发送到数据库,并将该值与数据库中存储的值进行比较 最好的方法是什么 @抑制警告资源 公共静态无效字符串[]args{ int p = 29; int q = 41; in

所以我有一个值,它作为一个整数从一个类返回,并且根据输入的文本的长度执行多次。我可以打印出每个字符的输出,但我想将输出合并成一个字符串。这是输出的一个示例

输入纯文本:hi

H的值为7

加密值为721,解密值为7

I的值是8

加密值为330,解密值为8

我希望它打印出最终的密码文本721330,以便它将其发送到数据库,并将该值与数据库中存储的值进行比较

最好的方法是什么

@抑制警告资源 公共静态无效字符串[]args{

    int p = 29;
    int q = 41;
    int d = 83;
    int n = 0;
    int w = 0;
    int e=27;
    int c =1;
    String plainText;
    String Str = new String("ABCDEFGHIJKLMNOPQRSTUVWXYZ");

    //System.out.println(m);
    n = p*q;
    //System.out.println("The n value equals " + n);
    w = (p-1)*(q-1);
    //System.out.println("The w value equals " + w);

    int qo=0;
    int re=0;

    w = w*1+d*0;
    d = w*0+d*1;


    qo = w/d;
    //System.out.println("quotient value " + qo);
    re = w-qo*d;
    //System.out.println("reminder value " + re);
    qo=d/re;
    //System.out.println("quotient value " + qo);
    re = d-qo*re;
    //System.out.println("reminder value " + re);
    Scanner scn=new Scanner(System.in);

    System.out.println("Enter plain-text:");
    plainText=scn.nextLine();

    plainText=plainText.toUpperCase();
    char[] chars = plainText.toCharArray();

    for (int i=0;i<chars.length;i++)
    { 

    int m= Str.indexOf(chars[i]);

    System.out.println("The value of " +chars[i] + " is " + m +"\n");

    toBin(e);
    //System.out.println("The binary value of e " + toBin(e));
    de_encryption(c,n,m,toBin(e));
    int C = de_encryption(c,n,m,toBin(e));

    //String final_output = String.valueOf(C);

    StringBuilder sb = new StringBuilder(); 
    int part = C;
    sb.append(part);

    String result = sb.toString();
    //I want the final_output value to be appended into a stringbuilder
    System.out.println("The encrypted value is " + result);

    toBin(d);
    //System.out.println("The binary value of d " + toBin(d));

    int D = de_encryption(c,n,C,toBin(d));
    StringBuilder sb1 = new StringBuilder(); 
    int part1 = D;
    sb1.append(part1);

    String result1 = sb1.toString();
    System.out.println("The decrypted value is "+ result1 +"\n");


    }

}

如果我理解正确,您是在问我们如何通过连接多个部分从多个部分创建字符串

使用:


如果我理解正确,您是在问我们如何通过连接多个部分从多个部分创建字符串

使用:


我尝试实现此方法,但不确定要在for语句中添加什么。我添加了代码,希望它能帮助回答问题。最后的_输出字符串是我要追加的字符串。您已经有了for循环:for int I=0;iIt将第一个值追加到SB中,但当它再次通过循环并追加2值它重写整个字符串,而不是将其插入字符串的末尾。我会将上面的代码更新为新代码。输出是相同的。@samibravo:请重新阅读我的答案。当然,StringBuilder必须在循环外部创建,而不是在循环内部创建。否则,您将重新创建一个新的StringBuilder,并忘记前面的代码在每次迭代中都有一个。我尝试实现这个方法,但不确定要在for语句中添加什么。我已经添加了代码,希望它能帮助回答这个问题。最后的_输出字符串是我要附加的字符串。您已经有了for循环:for int I=0;iIt将第一个值附加到SB中,但当它通过再次循环并附加2值。它重写整个字符串,而不是将其插入字符串的末尾。我将用新代码更新上面的代码。输出是相同的。@samibravo:重新阅读我的答案。当然,StringBuilder必须在循环外部创建,而不是在循环内部创建。否则,您将重新创建一个新的StringBuilder,在每次迭代中,忘记上一个。你不需要用另一个字符串来包装字符串。你不需要用另一个字符串来包装字符串。
StringBuilder sb = new StringBuilder();
for (...) { 
    String part = ...;
    sb.append(part);
} 
String result = sb.toString();