📜  java 折叠字符串数组 - Java (1)

📅  最后修改于: 2023-12-03 15:01:33.825000             🧑  作者: Mango

Java 折叠字符串数组

在Java中,折叠字符串数组的实现通常是通过循环遍历数组,将相邻的相同字符串折叠成一个,最后返回折叠后的数组。

以下是一个示例代码片段:

public static String[] fold(String[] strings) {
    List<String> result = new ArrayList<>();

    for(int i = 0; i < strings.length; i++) {
        if(result.isEmpty() || !result.get(result.size() - 1).equals(strings[i])) {
            result.add(strings[i]);
        } else {
            String last = result.get(result.size() - 1) + strings[i];
            result.set(result.size() - 1, last);
        }
    }

    return result.toArray(new String[result.size()]);
}

该代码通过 List 来存储折叠后的字符串,并且在遍历时判断是否与前一个字符串相同,若不同则直接添加到 List 中,否则将前一个字符串与当前字符串拼接后再更新 List 中最后一个元素。

使用该方法,可以将输入的字符串数组折叠成多个不相同的字符串:

String[] strings = new String[] { "a", "b", "b", "c", "d", "d", "d", "e" };
String[] foldedStrings = fold(strings);
System.out.println(Arrays.toString(foldedStrings));
// Output: [a, bb, c, ddd, e]

以上代码将 "b", "d" 等相邻的相同字符串折叠成一个,输出结果为 ["a", "bb", "c", "ddd", "e"]

总结:折叠字符串数组是一种常见的字符串处理方式,在Java中可以通过循环遍历、拼接字符串实现。