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);
}}
我尝试将字符串数组中的所有单词连接到一个字符串中,得到的输出如下:“敏捷的棕色狐狸,跳过懒狗。”
我希望删除标点符号前的空格,这样输出就可以像这样:“敏捷的棕色狐狸,跳过懒狗。”你知道我该怎么做吗?
发布于 2021-09-15 14:05:55
通过对它进行编程。为什么quick和brown可以用空格分隔,而fox和,不能?Java显然不知道。你得说出来。您可以使用str.charAt(0)获取第一个字符,最后一个使用str.charAt(str.length() -1),您可以使用Character.isLetterOrDigit检查它是否是需要空格的字符类型(例如,不是冒号、空格、逗号、感叹号或其他类似字符)。
在for (String word : words)循环中使用这些工具。确定要添加的字符串的开头是否为“非字母/数字”,如果是,则不要添加该空格。否则,请添加它。
发布于 2021-09-15 14:05:42
当您将字符与空格连接在一起时,可以对字符串变量进行替换,以删除不需要的空格
concatenatedString = concatenatedString.replaceAll(" ,", ",")
.replaceAll(" \\.", ".");发布于 2021-09-20 12:20:33
我会颠倒你的逻辑,这样如果要添加的单词在它之前需要一个空格,你就可以在前面加上一个空格。您将不得不处理不需要的初始单词(您可以检查concatenatedString是否为空,或者简单地将concatenatedString作为第一个单词并跳到第二个单词)。
现在,您有两个问题:
如果在添加新单词时切换到前缀空格,则会使检查变得更容易。然后,如果是需要空格的单词,则只在单词前添加空格。
https://stackoverflow.com/questions/69194588
复制相似问题