用java写一个String,句号或逗号之前不应有空格。 句号或逗号后面应该有一个空格。
时间: 2023-05-23 18:01:22 浏览: 146
这可以通过使用正则表达式来实现。以下是一些近似的Java代码示例:
String input = "This is a test , of the string. ";
String output = input.replaceAll("\\s*([.,])\\s*", "$1 ");
在这个示例中,我们使用replaceAll()方法将字符串中的空格替换为规范格式。参数中的第一个字符串"\\s*([.,])\\s*"表示将匹配一个可选的空格,然后匹配一个句号或逗号,然后再匹配一个可选的空格。$1指的是包含在第一个括号中的子表达式,它表示我们匹配到的句号或逗号。最终的结果是在句号或逗号之后添加了一个空格,并去掉了多余的空格,以产生符合规范的输出。
相关问题
假设你是一个团队的一员,该团队正在开发一款修复书面文本错误的应用程序。 您的工作是编写一个Java程序,提示用户输入一些文本,然后在将文本写入控制台之前,根据以下规则清理文本: 所有句子都以大写字母开头。 如果句子中包含单词Java,则应为大写,例如Java 除了单词Java和句子中的第一个字母外,其余所有字母都是小写的。 单词之间应该有一个空格。 句号或逗号之前不应有空格。 句号或逗号后面应该有一个空格(除非根据下面的规则7,它是文本的最后一个字符)。 文本的开头和结尾不应该有空格。
我可以回答这个问题。以下是Java程序的代码:
import java.util.Scanner;
public class TextCleaner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入文本:");
String text = scanner.nextLine();
String[] sentences = text.split("(?<=[.?!])\\s+");
for (String sentence : sentences) {
sentence = sentence.trim();
if (!sentence.isEmpty()) {
sentence = sentence.substring(0, 1).toUpperCase() + sentence.substring(1).toLowerCase();
sentence = sentence.replaceAll("\\bJava\\b", "JAVA");
System.out.print(sentence + ". ");
}
}
}
}
这个程序会提示用户输入文本,然后清理文本并将其写入控制台。程序首先将文本分割成句子,然后对每个句子进行清理。清理包括将句子的第一个字母大写,将单词Java替换为JAVA,将其余字母小写,以及添加适当的空格。最后,程序将清理后的句子写入控制台。
读取文件words.txt中的全部文本,统计其中有多少个空格,数字,标点符号和单词(规定单词间以一个或多个空格分开)。假设一个单词恰好在行末结束,那么下一行的开头应有空格,句号和逗号后面也应有空格。
好的,我来给您解答。以下是 Python 代码实现:
```python
import string
with open('words.txt', 'r') as f:
text = f.read()
num_spaces = text.count(' ')
num_digits = sum(c.isdigit() for c in text)
num_punctuations = sum(c in string.punctuation for c in text)
words = text.split()
num_words = len(words)
print(f"Number of spaces: {num_spaces}")
print(f"Number of digits: {num_digits}")
print(f"Number of punctuations: {num_punctuations}")
print(f"Number of words: {num_words}")
```
首先,我们打开文件并读取其中的全部文本。然后,使用字符串的 `count()` 方法计算空格的数量,使用一个生成式和字符串模块中的 `punctuation` 常量计算数字和标点符号的数量。
接下来,我们将文本按空格分割成单词,并使用 `len()` 函数计算单词的数量。
最后,我们将统计结果输出。注意,在 Python 3.6 及以上版本中,我们可以使用 f-string 来格式化输出。
阅读全文