我需要一种用更少的代码来完成相同操作的方法。这将帮助我更好地理解 Java。以下代码的输出将是:new, boy, 3pm, to
public class substring {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str= "a new, boy with new haircut boy, 3pm to boy 8pm margian 3pm to ghost";
String concant = "";
int occurance =0;
str = str.replaceAll(",", "");
System.out.println(str);
String[] subStr = str.split("\\s");
for(String sub:subStr)
{
for (String sub1:subStr) {
if(sub.equals(sub1))
{
occurance++;
if(occurance>=2)
{
if(!concant.contains(sub))
{
if(concant!= "")
concant = concant +", "+ sub;
else
concant = sub;
} …Run Code Online (Sandbox Code Playgroud) 我匹配一个模式,在句子"你是测试"中是一个字符串"test",并用"test"替换它.
StringBuffer sb = new StringBuffer();
Pattern pattern = Pattern.compile("test", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("you are test");
while (matcher.find()) {
matcher.appendReplacement(sb, "test\"));
}
matcher.appendTail(sb);
replacementString = sb.toString();
Run Code Online (Sandbox Code Playgroud)
问题出在声明中matcher.appendReplacement(sb, "test\"));,"\"被视为特殊字符,未执行替换.
请分享您对如何克服这种情况以及如何用字符串中的"\"替换您的想法.