Java返回循环

问题描述:

我想创建一个程序,它会从给定的数字输入中找到最长的递增子字符串。Java返回循环

(如输入=“1215678”输出=“5678”)。

在循环底部的回报是不工作:它说,它无法找到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; 
    } 
} 

您的for循环中声明asc。将它移到外面。

您需要在任何循环或条件语句之外定义asc

public static String itsAscending(String n) 
{ 
    String asc = null; 
    // Rest of the method 
} 

您已经定义asc里面的for循环和其只在循环里可见。如果你想在循环范围之外访问它,那么在外部定义它。

+0

我将其移动到INT长度= k.length下更好( );然而我得到这个消息:变量增加可能没有被初始化 – user2181267 2013-03-18 08:00:59

+0

定义它像:'String asc = null;' – Habib 2013-03-18 08:01:44

+0

那么你应该初始化它为“”;) – Breavyn 2013-03-18 08:01:59

初始化变量asc for循环。

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

声明变量kpublic static String itsAscending(String k)


如果调用方法形式main方法

​​