2014-12-24 93 views
1

如何接收輸入並將每個字母逐一遞增(例如「ABC」)爲Java中的「BCD」。 我在下面試圖嘗試和字符串更改爲int,然後通過1遞增字符串

import java.util.Scanner; 
public class w7q3 { 

    public static void main(String[] args) { 
     Scanner in = new Scanner (System.in); 
     String str =""; 
     int A = 0; 

     System.out.println ("Enter String"); 

     str = in.nextLine(); 

     int num = Integer.parseInt(str); 

     num= num +1; 


     System.out.println(str); 
    } 


    } 
+0

如果字母是不連續的,會發生什麼,如「ADT」?如果其中一個字母是「Z」會發生什麼? – Bobulous

+2

我想你會得到一些隨機的ASCII垃圾。聽起來像一個家庭作業問題tbh,但沒有線索誰會在聖誕節做功課。 – MightyPork

+1

@Arkanon第一個人會不會產生「BEU」?我沒有看到有關這部分要求的任何含糊不清的內容。 – ajb

回答

4

遍歷每個charString增加值,添加一個到char然後將其丟回char追加那到一個StringBuilder。喜歡的東西,

Scanner in = new Scanner(System.in); 
System.out.println("Enter String"); 
String str = in.nextLine(); 
StringBuilder sb = new StringBuilder(); 
for (char ch : str.toCharArray()) { 
    sb.append((char) (ch + 1)); 
} 
System.out.println(sb.toString()); 

當然,如果你想處理的環繞,你可以做類似

for (char ch : str.toCharArray()) { 
    char o = ((char) (ch + 1)); 
    if (Character.isDigit(ch)) { 
     if (o > '9') { 
      o = '0'; 
     } 
    } else if (Character.isLowerCase(ch)) { 
     if (o > 'z') { 
      o = 'a'; 
     } 
    } else if (Character.isUpperCase(ch)) { 
     if (o > 'Z') { 
      o = 'A'; 
     } 
    } 
    sb.append(o); 
}