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