java 从字符串数组中删除空白

yeotifhr  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(258)

从字符串数组中删除空格。
在从一个句子创建一个字符串数组时,我遇到了多个空格,需要删除它们,以便从给定的句子创建一个新的反向句子。如何删除两个单词中间的多余空格?示例:a good example
如何删除 goodexample 之间的两个空格?
下面是我使用的代码:

public class reverseString {
    public static void main(String[] args) {
        String s = "a good   example";
        String ans = revString(s);
        System.out.println(ans);
    }
    static String revString(String s) {
        String[] arr = s.split(" ");
        List<String> list = new ArrayList<String>();
        StringBuilder ans = new StringBuilder();
        for (int i = arr.length - 1; i >= 0; i--) {
            if (arr[i] == null) {
                continue;
            } else {
                ans.append(arr[i].trim());
                // ans.append(" ");
            }
        }
        String is = ans.toString();
        return is.trim();
    }
}

预期输出为:example good a
我得到的输出是:example good a
将第i个索引处的字符串与““进行比较,应该会导致循环继续。相反,它跳转到 else 条件。

5sxhfpxr

5sxhfpxr1#

方法split(java.lang.String类)的参数是regular expression。只需添加一个+(即“加”符号-其意味着 * 一个或多个 *)到参数的值。

import java.util.ArrayList;
import java.util.List;

public class ReverseString {

    public static void main(String[] args) {
        String s = "a good   example";
        String ans = revString(s);
        System.out.println(ans);

    }

    static String revString(String s) {
        String[] arr = s.split(" +"); // CHANGE HERE - added '+'
        List<String> list = new ArrayList<String>();
        StringBuilder ans = new StringBuilder();
        for (int i = arr.length - 1; i >= 0; i--) {
            if (arr[i] == null) {
                continue;
            }
            else {
                ans.append(arr[i].trim());
                ans.append(" ");
            }
        }
        String is = ans.toString();
        return is.trim();
    }
}

运行上面的代码会产生以下输出:

example good a

相关问题