编写一个程序,提示用户输入一个字符串,然后显示最大连续递增的有序子串:比如
输入:welcome  回车
结果:wel

解决方案 »

  1.   

    没看明白,welcome输出wel  那wel怎么就递增了?不解
      

  2.   

    你得说怎么样的字符是连续的啊?比如:assic码连续则认为是连续,还是怎么着算是连续。
      

  3.   

    public class Test {
    public static void main(String args[]){
    String s="abcdgffdsfabcdefgdfgdf";
    System.out.println(getLengthchar(s));
    }
    public static String getLengthchar(String s){
    String str1="";
    String str2="";
    for(int i=0;i<s.length();i++){
    if(str1.equals("")){
    str1+=s.charAt(i);
    }
    if(i+1==s.length()){ //字符比较到了末尾,跳出循环
    break;
    }
    if((s.charAt(i)+1)==s.charAt(i+1)){//比较该字符和它的下一个字符是否为递增
    str1+=s.charAt(i+1);
    }else{ //当前字符和它的下一个字符不是递增关系
    if(str1.length()>str2.length()){ //如果之前的字符长度比现在的短,则把现在的字符赋给之前的变量
    str2=str1;
    }
    str1=""; //清空当前的变量
    }
    }
    return str2;
    }
    }
      

  4.   

    你的代码有问题吧,我改成了下面的内容,当输入类似于:ababc之类的无法将最后一次的str1与str2比较就结束,请问怎么改啊
    import java.util.Scanner;
    public class tt{
    public static void main(String[]args){
    System.out.print("请输入一行字符串:");
    Scanner sc=new Scanner(System.in);
    String s=sc.nextLine();
    System.out.print("最大的连续子串是:"+getSubstring(s));
    }
    public static String getSubstring(String s){
    String str1="";
    String str2="";
    for(int i=0;i<s.length();i++){
    if(str1.equals(""))str1+=s.charAt(i);
    if (s.charAt(i)+1==s.charAt(i+1))
    str1+=s.charAt(i+1);
      else{
      if(str1.length()>str2.length())
         str2=str1;
         str1="";
    }

    }
    return str2;
    }
    }
      

  5.   

    package yw.lmy.ejb3.test;/**
     * @author LiMaoYuan ([email protected])
     * @version 创建时间:2012-4-26 下午11:13:52 类说明
     */
    public class Test {
    public static void main(String args[]) {
    String s = "ababcd";
    System.out.println(getLengthchar(s));
    } public static String getLengthchar(String s) {
    String str1 = "";
    String str2 = "";
    for (int i = 0; i < s.length(); i++) {
    if (str1.equals("")) {
    str1 += s.charAt(i);
    }
    if (i + 1 == s.length()) { // 字符比较到了末尾,跳出循环
    break;
    }
    if ((s.charAt(i) + 1) == s.charAt(i + 1)) {// 比较该字符和它的下一个字符是否为递增
    str1 += s.charAt(i + 1);
    if(i+2==s.length()){
    if (str1.length() > str2.length()) { // 如果之前的字符长度比现在的短,则把现在的字符赋给之前的变量
    str2 = str1;
    }
    str1 = ""; // 清空当前的变量
    }
    } else { // 当前字符和它的下一个字符不是递增关系
    if (str1.length() > str2.length()) { // 如果之前的字符长度比现在的短,则把现在的字符赋给之前的变量
    str2 = str1;
    }
    str1 = ""; // 清空当前的变量
    }
    }
    return str2;
    }
    }