2015-04-05 43 views
0

我想有一個字符,加號,並得到另一char(a+2=c)添加數字符,使其另一個字符

int leng,leng2; 
    String word = ""; 
    String key = ""; 
    String enc =""; 
    char x; 
    char z; 
    char tost; 
    System.out.println("gimme word"); 
    word=in.next(); 
    System.out.println("gimme key"); 
    key=in.next(); 
    leng=word.length(); 
    leng2=key.length(); 

    for(int i=1;i<=leng;i++) 
    { 
     z=word.charAt(i-1); 
     x=key.charAt(i-1); 
     int plus=z + x; 
     tost=(char)plus; 
     enc=enc+tost; 
     System.out.println(enc); 
     System.out.println(tost); 
     System.out.println((char)z); 
     System.out.println((char)x); 
     System.out.println(plus); 
     System.out.println((char)plus); 
    } 

我希望它打印c,並在我的代碼我charAt做因爲我有一個完整的字符串,我試圖尋找許多解決方案,並嘗試了很多東西,他們都沒有傷心地工作。

編輯:完整的代碼上的要求 焦炭加不工作的方式,並說,這是一個錯誤

+0

Java字符串是統計的Unicode/UTF-16代碼單元序列,其中一個或兩個編碼碼點。儘管抵消代碼點有一定意義,但結果不一定與角色相關聯。我猜你想在[Basic Latin](http://www.unicode.org/charts/PDF/U0000.pdf)字母等有限範圍內操作,如果+2超出範圍,則需要環繞。 – 2015-04-05 18:45:14

回答

0

你需要char plus=z+x;沒有plus=r+x;

這會給字符a加上2,導致字符c

System.out.println(plus); 
0

您的代碼

String r= "abc"; 
int x=2; 
char z= r.charAt(0); 
plus=r+x          // wrong do int plus=z+x; 
String plus2=(String)String.valueOf(plus);  //not required 
System.out.println(plus2);      // plus not defined 

更正後的代碼

String r= "abc"; 
int x=2; 
char z= r.charAt(0); 
int plus=z+x; 
System.out.println((char)plus); 

輸出

c 

你可以用它打印

Demo

您的編輯

變化只有一條線後

int plus=z + Character.getNumericValue(x); 

Demo

+0

'z = word.charAt(i-1); // z是char x = key.charAt(i-1); // x是char plus = z + x; //加上int tost =(char)plus; // tost是char enc = enc + tost; // enc是字符串 System.out.println(enc); System.out.println(tost); System.out.println((char)z); System.out。println((char)x);'這是原始代碼 – Hacktivator 2015-04-05 17:57:24

+0

@Hacktivator你能發佈完整的代碼,編輯你的問題嗎? – silentprogrammer 2015-04-05 18:04:40

+0

我已經上傳了:D感謝您的幫助 – Hacktivator 2015-04-06 17:23:30

1

如果你想整個字符串這樣做,那麼你可以使用一個for循環 -

String r= "abc"; 
int x=2; 

for(i=0; i<r.length(); i++){ 
    char z= r.charAt(0); 
    int plus=z+x; 
    System.out.println((char)plus); 
} 

Look在類型鑄造System.out.println()。由於plusint,您必須明確將其轉換爲char

0

它甚至不應該編譯。你還沒有聲明變量加。你也想把2加到r中索引爲零的字符上,它存儲在z中。所以你必須將x添加到z。做這樣的事情而不是

String r = "abc"; 
int x = 2; 
char z = r.charAt(0); 
char plus = z + x; 
System.out.println(plus); 
+0

'z = word.charAt(i-1); // z是char x = key.charAt(i-1); // x是char plus = z + x; //加上int tost =(char)plus; // tost是char enc = enc + tost; // enc是字符串 System.out.println(enc); System.out.println(tost); System.out.println((char)z); System.out.println((char)x);'這是原始代碼 – Hacktivator 2015-04-05 17:53:59

相關問題