与えられた数値入力から最長の昇順の部分文字列を読み取るプログラムを作成しようとしています。
(例: 入力 = "43123" 出力 = "123")
ループの編集を終了しましたが、プログラムはコンパイルされず、最後から 2 番目の閉じ括弧の「return ステートメントがありません」と言及し続けます。
return asc; を追加してみました。そして壊れます。しかし、どちらも機能していないようです。
以下は私のコードです:
import java.util.Scanner;
public class Ascending{
public static void main(String args[]){
System.out.print("Enter a number = ");
//scan the input
Scanner in = new Scanner(System.in);
String n = in.nextLine();
//print solution
System.out.println("output = " + itsAscending(n));
}
public static String itsAscending(String n) {
int length = n.length();
for(int i = 0; i < length; i++) {
char first = n.charAt(i);
char next = n.charAt(i+1);
int f = (int)(first - 48);
int nx = (int)(next - 48);
String asc;
String works = "";
if (f<nx) {
works = works + n.substring(i, i+2);
asc = works.substring(0, works.length()-1);
return asc;
}
else {
works = works + "";
asc = works.substring(i, works.length()-1);
return asc;
}
}
}
}