在Java代码中,我有一段字符串,我想检测这段字符串的标点,如果是英文标点就转为中文,该怎么写
时间: 2024-02-27 19:53:11 浏览: 116
你可以利用Java中的正则表达式和replace方法来实现这个功能。具体步骤如下:
1. 使用正则表达式匹配字符串中的英文标点符号,可以使用以下正则表达式:
```java
String regex = "[\\p{Punct}&&[^。,、]]"; // 匹配除了中文标点以外的英文标点
```
2. 使用replace方法将匹配到的英文标点符号替换为对应的中文标点符号,可以使用以下代码:
```java
String chinesePunctuations = ",。、!?;:“”‘’()【】《》"; // 中文标点符号
String replacedStr = str.replaceAll(regex, m -> {
String punctuation = m.group();
int index = englishPunctuations.indexOf(punctuation);
return index >= 0 ? String.valueOf(chinesePunctuations.charAt(index)) : punctuation;
});
```
完整的代码示例如下:
```java
public static void main(String[] args) {
String str = "Hello, world! This is a test sentence.";
String englishPunctuations = ",.!?;:\"'()[]<>";
String chinesePunctuations = ",。、!?;:“”‘’()【】《》";
String regex = "[\\p{Punct}&&[^。,、]]";
String replacedStr = str.replaceAll(regex, m -> {
String punctuation = m.group();
int index = englishPunctuations.indexOf(punctuation);
return index >= 0 ? String.valueOf(chinesePunctuations.charAt(index)) : punctuation;
});
System.out.println(replacedStr);
// Output: Hello, world! This is a test sentence。
}
```
阅读全文