0

指定された数値入力から最長の昇順の部分文字列を見つけるプログラムを作成しようとしています。

(例: 入力 = "1215678" 出力 = "5678")

ループの一番下の 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 k = in.nextLine();



}

public static String itsAscending(String n) 
{

    int length = k.length();    

    for(int i = 0; i < length; i++) 
    {

        char first = k.charAt(i);       
        char next = k.charAt(i+1);      
        int f = (int)(first - 48);       
        int nx = (int)(next - 48);      

        String asc;
        String works = ""; 

        if (f<nx) 
        {

            works = works + k.substring(i, i+2);
            asc = works.substring(0, works.length()-1); 

        }

        else 
        {

            works = works + "";
            asc = works.substring(i, works.length()-1); 

        }
    }

return asc;
    }
}
4

4 に答える 4

1

ascfor ループの外で変数を初期化します。

    public static String itsAscending(String n)
    {
    String asc = "";

変数を宣言するkか、public static String itsAscending(String k)


mainメソッドフォームメソッドを呼び出すと良い

String k = in.nextLine();
itsAscending(k);
于 2013-03-18T08:10:03.317 に答える
1

ループasc内で宣言しています。for外側に移動します。

于 2013-03-18T07:58:31.723 に答える
1

for ループ内で定義ascし、ループ内でのみ表示されます。ループのスコープ外でアクセスしたい場合は、外側で定義してください。

于 2013-03-18T07:58:32.660 に答える
0

ascループまたは条件ステートメントの外側 で定義する必要があります。

public static String itsAscending(String n) 
{
    String asc = null;  
    // Rest of the method 
}
于 2013-03-18T07:58:32.583 に答える