题目来源:
阿里实习生电话面试题目:http://blog.csdn.net/ns_code/article/details/21043665
题目描述:
给定一个字符串,输出其所有连续子串,如:给定字符串为abcd,则要输出的其全部连续子串为:a,b,c,d,ab,bc,cd,abc,bcd,abcd。
思路:
逐步扫描,逐渐输出步长分别为0,1,2,3的子字符串
/*
* $filename: Test.java,v $
* $Date: 2014-3-12 $
* Copyright (C) ZhengHaibo, Inc. All rights reserved.
* This software is Made by Zhenghaibo.
*/
package edu.njupt.zhb;
/*
*@author: ZhengHaibo
*web: http://blog.csdn.net/nuptboyzhb
*mail: zhb931706659@126.com
*2014-3-12 Nanjing,njupt,China
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
displaySubstring("abcdefg");
}
public static void displaySubstring(String str){
for(int k=0;k<str.length();k++){//控制步长
for(int i=0;i<str.length()-k;i++){//对字符串逐步扫描
for(int j=i;j<i+k+1;j++){//输出扫描的起始点及以后的k个元素
System.out.print(str.charAt(j));
}
System.out.print('\t');
}
}
}
}
运行结果:
a b c d e f g ab bc cd de ef fg abc bcd cde def efg abcd bcde cdef defg abcde bcdef cdefg abcdef bcdefg abcdefg