有一个String的字符串"abc acedw iikj*hikk*jhybn uybhj klij*kklwq nnnm*kijuh*kileq dddfg", 定义连续的字母为一个子串,编程取出所有的子串存放在一个String数组中并输出(不用正则表达式)
时间: 2024-01-17 09:50:06 浏览: 141
输出字符串的子串 连续字符串输出处理
可以通过遍历字符串,逐个取出子串来实现。具体步骤如下:
1. 定义一个空的 ArrayList<String>,用于存放所有的子串;
2. 定义两个变量 start 和 end,分别表示子串的起始和结束位置;
3. 遍历字符串的每个字符,如果当前字符不是字母,则表示一个子串结束,将该子串添加到 ArrayList 中,并将 start 和 end 重置;
4. 如果当前字符是字母,则将 end 加一;
5. 最后将 ArrayList 转换为 String 数组并输出即可。
下面是完整的 Java 代码实现:
```java
public class SubstringDemo {
public static void main(String[] args) {
String str = "abc acedw iikj*hikk*jhybn uybhj klij*kklwq nnnm*kijuh*kileq dddfg";
List<String> list = new ArrayList<>();
int start = 0, end = 0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (!Character.isLetter(c)) {
if (end > start) {
list.add(str.substring(start, end));
}
start = i + 1;
end = i + 1;
} else {
end++;
}
}
if (end > start) {
list.add(str.substring(start, end));
}
String[] substrings = list.toArray(new String[0]);
System.out.println(Arrays.toString(substrings));
}
}
```
输出结果为:
```
[abc, acedw, iikj, hikk, jhybn, uybhj, klij, kklwq, nnnm, kijuh, kileq, dddfg]
```
阅读全文