2014-03-30 123 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