Java串如何打印出abcd的空串以及所有子串并且计算个数
时间: 2024-10-11 08:06:28 浏览: 48
在Java中,你可以通过遍历字符串的所有子串并使用`StringBuilder`或`StringBuffer`的`insert()`方法来构建一个包含原始字符串及其所有子串的新字符串。这里是一个简单的示例:
```java
public class Main {
public static void main(String[] args) {
String str = "abcd";
// 打印空串
System.out.println("Empty substring: ");
printSubstrings("", str);
// 计算并打印所有子串
int count = 0;
for (int i = 0; i < str.length(); i++) {
for (int j = i + 1; j <= str.length(); j++) {
StringBuilder sb = new StringBuilder();
sb.append(str.substring(i, j));
System.out.println(sb.toString());
count++;
}
}
System.out.println("\nTotal number of substrings: " + count);
}
private static void printSubstrings(String prefix, String str) {
if (str.isEmpty()) {
System.out.println(prefix + "");
} else {
printSubstrings(prefix + str.charAt(0), str.substring(1));
printSubstrings(prefix, str.substring(1));
}
}
}
```
在这个程序里,`printSubstrings()`函数递归地生成了所有的子串,而外部循环则负责处理长度的变化。注意,这个例子会包含空串(长度为0的子串),如果你只想排除空串,可以在计数前加上条件判断。
阅读全文