Java打印一个字符串的所有字串
2014-04-09 23:12
190 查看
使用了两种方式,一种双重for循环,一种是改进后的递归调用
/**
* <pre>
* 需求:给出一个字符串,取出属于这个字符串的所有字串。
* 例如:abc 字串:a、ab、abc、b、bc、c
*
* 分析: 规律: a、ab、abc b、bc c
* 1.接收一个字符串
* 2.以第一个字符为首,依次加1向后取字串,最多加到字符串长度减1,输出
* 3.截取第一位之后的所有字符串
* 4.循环2、3步
* </pre>
*/
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));
}
}
}
/**
* <pre>
* 需求:给出一个字符串,取出属于这个字符串的所有字串。
* 例如:abc 字串:a、ab、abc、b、bc、c
*
* 分析: 规律: a、ab、abc b、bc c
* 1.接收一个字符串
* 2.以第一个字符为首,依次加1向后取字串,最多加到字符串长度减1,输出
* 3.截取第一位之后的所有字符串
* 4.循环2、3步
* </pre>
*/
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 输入一个字符串,打印出该字符串中字符的所有排列
- java输入一个字符串,打印出该字符串中字符的所有排列,随机打乱排序
- java 实现输入一个字符串,打印出其中所有的数字
- java 输入一个字符串,打印出该字符串中字符的所有排列
- Java练习题-输入一个字符串,输出该字符串中字符的所有组合
- java 在控制台中输入一个字符串,然后按照逆序打印出来
- python程序2(递归查找某一个文件夹下所有的文件是否含有某个特定的字符串,并打印该文件名)
- java打印一个数据库的所有表的主键
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。用1、2、2、3、4、5这六
- java中指定字符串是否包含一个字串。(比如判断邮箱是否含有@)
- 给一个字符串(包含重复字符),打印它的所有可能的组合。
- 输入一个字符串,打印出该字符串中字符的所有排列。
- 输入一个字符串,打印出该字符串中字符的所有排列
- 求一个字符串的所有回文字串
- 输入一个字符串,打印出其中所有的数字
- C语言实现输入一个字符串后打印出该字符串中字符的所有排列
- 输入一个字符串,打印出该字符串中字符的所有排列
- 用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
- 编写一个Python程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径