该任务必须使用正则表达式来解决,而不使用容器类。
输入:文本(可能由拉丁字母和西里尔字母组成,不包含_)
输出:源文本,但在所有重复单词之前添加下划线_
将单词视为仅包含字母的序列(所有其他字符不包含在单词中)。创建一个将输入转换为输出的静态转换方法。
完成方法:
public static String convert (String input) {
...
}
输入示例:
This is a test
And this is also a test
And these are also tests
test
Это тест
Это также тест
И это также тесты
输出示例:
This _is _a _test
_And this _is _also _a _test
_And these are _also tests
_test
_Это _тест
_Это _также _тест
И это _также тесты
我的尝试:
public static void convert(String input) {
Pattern p = Pattern.compile("(\\b\\w+\\b)(?=[\\s\\S]*\\b\\1\\b[\\s\\S]*\\b\\1\\b)", Pattern.UNICODE_CHARACTER_CLASS);
String res = p.matcher(input+" "+input).replaceAll("_$1");
res = res.substring(0, res.length() - 1 - p.matcher(input).replaceAll("_$1").length());
System.out.println(res);
}
我的输出:在此处输入图像描述
This _is _a _test
_And this _is _also _a test
_And these are _also tests
_test
_Это _тест
_Это _также _тест
И это _также тесты
第二行中的单词“test”没有“_”,但我需要“_test”
呼如林
相关分类