0
我想創建一個Java程序,讀取從鍵盤輸入一個數字串,的Java:最長遞增子
,並給出了最長的上升子。
以下是我的代碼:
import java.util.Scanner;
public class Ascending{
public static void main(String args[]){
Scanner in = new Scanner(System.in);
System.out.print("Enter a number = ");
String n = in.nextLine();
int length = n.length();
for(int i = 0; i < length; i++) {
char first = n.charAt(i);
char next = n.charAt(i+1);
char last = n.charAt(length-1);
int f = (int)(first - 48);
int nx = (int)(next - 48);
int l = (int)(last - 48);
if (f<nx) {
String asc = n.substring(i, i++);
i++;
System.out.println("output = " + asc);
}
else {
String asc = n.substring(i, i++);
System.out.println("output = " + asc);
break;}
}
}
}
當我編譯上面,我得到
<Enter a number = 12 output = >
沒有任何結果。
我假設在for循環內出現問題,但我無法弄清楚我究竟在哪裏出錯了。
恐怕我可能定義了太多不必要的變量?
如果我這樣做,我會得到正確的結果,但也就是隻有在輸入小於2個位數。例如,如果我寫了'41234',那麼我再也沒有得到任何輸出。我想我必須得到增量的子串才能得到完整的'1234'。 (i ++,++ i,i + 1)似乎沒有出於某種原因正在工作。 – 2013-03-17 04:52:12
@BettyJones因爲您在'其他'條件下有'break'。我覺得你是通過把代碼塊放在一起而不理解爲什麼編碼的。我建議採取相反的方法:對於你寫的每一條陳述,你都應該問自己:「爲什麼我需要*在這裏有這樣的陳述?如果我把它放開,會出現什麼問題?」如果你有'i ++'之類的東西想要使用它,但不理解它,請編寫一個單獨的測試程序來確定它是如何工作的。 – 2013-03-17 11:19:26
好的,將嘗試再次開始工作。謝謝! – 2013-03-17 19:47:29