首页 > 解决方案 > 用“,”分割时从字符串中删除空格

问题描述

我需要在某个关键字之后和符号之前识别单词"="";"

我通过拆分使用以下方法

    String res = "private String   name1, name2,  name3; ";
    Matcher matcherWithCommar = Pattern
            .compile("(?<=^private)\\W+(String|float|long|short|double|byte|boolean|int|char)\\W+(.+?)(;|=)",
                    Pattern.CASE_INSENSITIVE)
            .matcher(res);

    if (matcherWithCommar.find()) {
        System.out.println("Varibels : " + matcherWithCommar.group(2).trim());
        String[] parameters = matcherWithCommar.group(2).trim().split(Pattern.quote(","));
        for (int r = 0; r < parameters.length; r++) {
            System.out.println("names: " + parameters[r]);

        }
    }

该解决方案使输出带有空格

我的输出就像

Varibels : name1, name2,  name3
names: name1
names:  name2
names:   name3

但我需要这样

Varibels : name1, name2,  name3
names: name1
names: name2
names: name3

没有空格

标签: javaregex

解决方案


更改.split(Pattern.quote(","));为匹配逗号前后空格的正则表达式模式(您不需要引用)。像,

.split("\\s*,\\s*");

我得到的只是那个改变

Varibels : name1, name2,  name3
names: name1
names: name2
names: name3

推荐阅读