Java打印一个字符串的所有字串

使用了两种方式,一种双重for循环,一种是改进后的递归调用

/**
 * 
 * 需求:给出一个字符串,取出属于这个字符串的所有字串。
 * 				例如:abc 字串:a、ab、abc、b、bc、c
 * 
 * 分析: 规律: a、ab、abc b、bc c
 * 1.接收一个字符串
 * 2.以第一个字符为首,依次加1向后取字串,最多加到字符串长度减1,输出
 * 3.截取第一位之后的所有字符串
 * 4.循环2、3步
 * 
*/ public class GetAllSubstring { public static void main(String[] args) { String str = "abcd"; // getAllSubstring(str); getAllSubstring1(str); // System.out.println("---"+str.substring(4)+"---"); } // 双重for循环 public static void getAllSubstring(String str) { int str_length = str.length(); String str_t; for (int j = 0; j < str_length; j++) { str_t = str.substring(j); for (int i = 0; i < str_t.length(); i++) { System.out.println(str_t.substring(0, i + 1)); } } } // 递归调用 public static void getAllSubstring1(String str) { if (str.length() > 0) { for (int j = 0; j < str.length(); j++) { System.out.println(str.substring(0, j + 1)); } getAllSubstring(str.substring(1)); } } }


你可能感兴趣的:(java原创,java,字串,所有字串,递归)