找到含有n个不同字符的子串的最大长度

来源:互联网 发布:端口在线扫描 编辑:程序博客网 时间:2024/06/07 06:48

       要求先输入字符串,再输入n的值,输出结果为:含有n个不同字符的子串的最大长度。

      处理方法:从字符串第一个字符开始,依次取大于等于的子串,得到含有n个字符的子串,如果新的子串长度大于maxSubStr,则更新maxSubStr。程序中需要防止字符标号溢出异常和字符标号越界(n的值大于字符串长度)异常。代码如下:

import java.util.Scanner;public class MaxSubstringForN {private String str;private int n;void deal(){if(n>str.length()){System.out.println("子串的长度不能大于字符串的长度,重新输入");return;}String maxSubStr=str.substring(0,n);for(int i=0;i<str.length()-1;i++){int j=i+n;if(j<str.length()){  String tmp=str.substring(i, j);  while((j<str length="" -1="" tmp="" indexof="" str="" charat="" j="">=0)   {tmp=str.substring(i, ++j);   }  if(tmp.length()>maxSubStr.length())    maxSubStr=tmp;}} System.out.println(str+"含有"+n+"个字符的最大子串为:"+maxSubStr+"其长度为: "+maxSubStr.length());}public static void main(String[] args)  {MaxSubstringForN mn=new MaxSubstringForN(); Scanner sc=new Scanner(System.in); mn.str=sc.nextLine(); mn.n=sc.nextInt(); mn.deal();  }}





0 0
原创粉丝点击