2014-03-30 83 views
1

因此,我有一个值作为整数从类返回,并根据输入的文本的长度多次完成。我可以打印出每个字符的输出,但我想将输出合并为一个字符串。这是输出的一个例子。将int值插入字符串而不重新分配原始字符串值

输入明文:喜

H的vaule是7

加密值721的解密值是7

的我的vaule是8

加密值为330解密值为8

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

这样做的最好方法是什么?

@SuppressWarnings(“资源”) 公共静态无效的主要(字串[] 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"); 


    } 

} 
+0

你不需要包装一个字符串用另一个字符串。 –

回答

4

如果我理解正确的,你问我们如何创建由多个部分字符串,由连接部件。

使用StringBuilder

StringBuilder sb = new StringBuilder(); 
for (...) { 
    String part = ...; 
    sb.append(part); 
} 
String result = sb.toString(); 
+0

我试着实现这个方法,但不知道要把什么放在“for”语句中。我已经添加了代码,希望它可以帮助回答这个问题。 final_output字符串是我想要追加的字符串。 – samibravo

+0

您已经有了for循环:'for(int i = 0; i

+0

它将第一个值附加到SB中,但是当它再次通过循环并追加2值时,它会重写整个字符串,而不是将其插入字符串的末尾。我会将上面的代码更新为新的代码。输出是一样的。 – samibravo