首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除字符串中标点符号前的空格

删除字符串中标点符号前的空格
EN

Stack Overflow用户
提问于 2021-09-15 13:58:00
回答 3查看 150关注 0票数 0
代码语言:javascript
运行
复制
public class Main {
    public static void main(String[] args) {
        String[] words = {"The", "quick", "brown", "fox", ",", "jumps", "over", "the", "lazy", "dog", "."};
        String concatenatedString = "";

        for (String word : words) {
            concatenatedString += word + " ";
    }
    
        System.out.println(concatenatedString);
}

}

我尝试将字符串数组中的所有单词连接到一个字符串中,得到的输出如下:“敏捷的棕色狐狸,跳过懒狗。”

我希望删除标点符号前的空格,这样输出就可以像这样:“敏捷的棕色狐狸,跳过懒狗。”你知道我该怎么做吗?

EN

回答 3

Stack Overflow用户

发布于 2021-09-15 14:05:55

通过对它进行编程。为什么quickbrown可以用空格分隔,而fox,不能?Java显然不知道。你得说出来。您可以使用str.charAt(0)获取第一个字符,最后一个使用str.charAt(str.length() -1),您可以使用Character.isLetterOrDigit检查它是否是需要空格的字符类型(例如,不是冒号、空格、逗号、感叹号或其他类似字符)。

for (String word : words)循环中使用这些工具。确定要添加的字符串的开头是否为“非字母/数字”,如果是,则不要添加该空格。否则,请添加它。

票数 1
EN

Stack Overflow用户

发布于 2021-09-15 14:05:42

当您将字符与空格连接在一起时,可以对字符串变量进行替换,以删除不需要的空格

代码语言:javascript
运行
复制
concatenatedString = concatenatedString.replaceAll(" ,", ",")
       .replaceAll(" \\.", ".");
票数 0
EN

Stack Overflow用户

发布于 2021-09-20 12:20:33

我会颠倒你的逻辑,这样如果要添加的单词在它之前需要一个空格,你就可以在前面加上一个空格。您将不得不处理不需要的初始单词(您可以检查concatenatedString是否为空,或者简单地将concatenatedString作为第一个单词并跳到第二个单词)。

现在,您有两个问题:

  1. 您必须检查的单词是下一个单词,而不是当前单词,
  2. 您将在字符串上得到一个尾随空格,即使它没有出现在打印中,它也在那里。

如果在添加新单词时切换到前缀空格,则会使检查变得更容易。然后,如果是需要空格的单词,则只在单词前添加空格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69194588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档