我有這個程序會根據用戶輸入的指定值輸出一個字母或單詞。例如,當用戶鍵入字母a時,則用戶將再次鍵入一個數字(例如2),輸出將是c。在我的程序中,當用戶鍵入單個字母並且字母是z時,它正在工作。但是,當使用鍵入的單詞超過字母z的數字時,將不會有輸出。例如用戶輸入xyz,輸入4跳過,沒有輸出。當用戶輸入號碼跳過字母時跳過字母(字母z)時沒有輸出
public class FinalsActivity2 {
Scanner fc = new Scanner(System.in);
char characters[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
File file = new File("C:\\Users\\TeonGo\\Desktop\\final2.txt");
PrintWriter pw = new PrintWriter(file);
public FinalsActivity2() throws IOException {
System.out.print("Enter text:");
String text = fc.nextLine();
System.out.print("Enter number:");
int num = Integer.parseInt(fc.nextLine());
try {
for (int f = 0; ; f++) {
for (int c = 0; c < 26; c++) {
if (text.charAt(f) == characters[c]) {
pw.print(characters[num + c]);
}
}
}
} catch (Exception e) {
}
pw.close();
}
public static void main(String[] args) throws IOException {
new FinalsActivity2();
}
}
第一件事就是來解決:去除異常吞嚥,而是解決您的for循環來對每個剛剛循環字符串中的字母。接下來,我只是將輸出打印到屏幕上而不是文件中,並且我還將所有代碼放入'main'方法中,而不是無意中有一堆字段,並將代碼放入構造函數中。所有這些都會使閱讀代碼變得更加容易,並查看錯誤。我還建議讓你的IDE格式化代碼,並適當地縮進它。完成所有這些更改後,使用更簡單的代碼編輯您的問題。 –
我認爲它正在做它應該做的事情並輸出'lipps'。爲什麼輸出是'hello'的'lippi'? – Sachin
@ jay-gorio輸入:'hello',數字:'4'。然後:'h + 4 = 1','e + 4 = i','1 + 4 = p','o + 4 = s'。如果'o'被解析爲'i',那麼會被解析爲什麼?代碼工作正常。 – liggiorgio