用java 编写程序求最大连续递增的有序子串(求解) 编写一个程序,提示用户输入一个字符串,然后显示最大连续递增的有序子串:比如输入:welcome 回车结果:wel 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没看明白,welcome输出wel 那wel怎么就递增了?不解 你得说怎么样的字符是连续的啊?比如:assic码连续则认为是连续,还是怎么着算是连续。 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; }} 你的代码有问题吧,我改成了下面的内容,当输入类似于: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; }} 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; }} 新人学习java希望大家推荐一本书参考... 为什么装jdk1.6后会有两个jre? 求一个JAVA小程序!急!在线等! eclipse能不能顯示出訪問服務器端后jsp的效果,然後可眎化修改頁面? 问个简单的问题... 怎样制作jar软件,不是电子书。。。。 谁能给一个拖动鼠标画直线的关键代码 万分感激 急问:广州南方电信和珠海创我科技哪个好? 怎么往表格中添数据?? java ant 地问题 小球运动路径问题 SWT 鼠标事件,对某个控件存在多个事件时怎么控制?
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;
}
}
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;
}
}
* @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;
}
}