Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何替换另一个文件中的某些字符串?_Java_Regex - Fatal编程技术网

Java 如何替换另一个文件中的某些字符串?

Java 如何替换另一个文件中的某些字符串?,java,regex,Java,Regex,我有一个文本文件: @Entity @Table(name = "User") public class User implements LSLEntity, HasUUID { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Long id; @Column(name = "facebook_id", unique=true)

我有一个文本文件:

   @Entity
@Table(name = "User")
public class User implements LSLEntity, HasUUID {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private Long id;

    @Column(name = "facebook_id", unique=true)
    private String facebookId;

    @UUID
    @Column(name = "uuid", unique = true)
    private String uuid;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="user_info_id")
    private UserInfo userInfo;

    @OneToOne
    @JoinColumn(name="balanced_customer_id")
    @Transient
    private BalancedCustomer balancedCustomer;

    @OneToOne(mappedBy = "user")
    private Session session;

    public User(){
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFacebookId() {
        return facebookId;
    }

    public void setFacebookId(String facebookId) {
        this.facebookId = facebookId;
    }

    public UserInfo getUserInfo() {
        return userInfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public BalancedCustomer getBalancedCustomer() {
        return balancedCustomer;
    }

    public void setBalancedCustomer(BalancedCustomer balancedCustomer) {
        this.balancedCustomer = balancedCustomer;
    }

    public Session getSession() {
        return session;
    }

    public void setSession(Session session) {
        this.session = session;
    }
我想替换另一个上的所有注释。这样的注释
@OneToOne
替换为
@myAnnotation1
,注释
@Column(name=“id”)
替换为
@myAnnotation1(bla bla bla)
。换句话说,将某些字符串替换为注释,另一行替换为注释

public StringBuffer clenFile(File file) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
        StringBuffer sbRead = new StringBuffer();
        StringBuffer sbResult = new StringBuffer();
        String line = null;
        while ((line = br.readLine()) != null) {
            sbRead.append(line).append("\n");
        }
        Matcher m = Pattern.compile("(?m)^(?! *@) *(.+)(\\s)").matcher(sbRead);
        while (m.find()) {
            sbResult.append(m.group(1)).append("\n");
        }
        return sbResult;
    }
此方法从注释中清除文件。但利润率下降了。如何维护页边距,并将这些注释替换为您自己的注释

现在输出:

public class User implements LSLEntity, HasUUID {
private Long id;
private String facebookId;
private String uuid;
private UserInfo userInfo;
private BalancedCustomer balancedCustomer;
private Session session;
public User(){
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFacebookId() {
return facebookId;
}
public void setFacebookId(String facebookId) {
this.facebookId = facebookId;
}
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public BalancedCustomer getBalancedCustomer() {
return balancedCustomer;
}
public void setBalancedCustomer(BalancedCustomer balancedCustomer) {
this.balancedCustomer = balancedCustomer;
}
public Session getSession() {
return session;
}
public void setSession(Session session) {
this.session = session;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getUuid() {
return uuid;
}

通过
string.replaceAll
函数

String input = "   @Entity\n" + 
                "@Table(name = \"User\")\n" + 
                "public class User implements LSLEntity, HasUUID {\n" + 
                "\n" + 
                "    @Id\n" + 
                "    @GeneratedValue(strategy = GenerationType.AUTO)\n" + 
                "    @Column(name = \"id\")\n" + 
                "    private Long id;\n" + 
                "\n" + 
                "    @Column(name = \"facebook_id\", unique=true)\n" + 
                "    private String facebookId;\n" + 
                "\n" + 
                "    @UUID\n" + 
                "    @Column(name = \"uuid\", unique = true)\n" + 
                "    private String uuid;\n" + 
                "\n" + 
                "    @OneToOne(cascade = CascadeType.ALL)\n" + 
                "    @JoinColumn(name=\"user_info_id\")\n" + 
                "    private UserInfo userInfo;\n" + 
                "\n" + 
                "    @OneToOne\n" + 
                "    @JoinColumn(name=\"balanced_customer_id\")\n" + 
                "    @Transient\n" + 
                "    private BalancedCustomer balancedCustomer;\n" + 
                "\n" + 
                "    @OneToOne(mappedBy = \"user\")\n" + 
                "    private Session session;\n" + 
                "\n" + 
                "    public User(){\n" + 
                "    }\n" + 
                "\n" + 
                "    public Long getId() {\n" + 
                "        return id;\n" + 
                "    }\n" + 
                "\n" + 
                "    public void setId(Long id) {\n" + 
                "        this.id = id;\n" + 
                "    }\n" + 
                "\n" + 
                "    public String getFacebookId() {\n" + 
                "        return facebookId;\n" + 
                "    }\n" + 
                "\n" + 
                "    public void setFacebookId(String facebookId) {\n" + 
                "        this.facebookId = facebookId;\n" + 
                "    }\n" + 
                "\n" + 
                "    public UserInfo getUserInfo() {\n" + 
                "        return userInfo;\n" + 
                "    }\n" + 
                "\n" + 
                "    public void setUserInfo(UserInfo userInfo) {\n" + 
                "        this.userInfo = userInfo;\n" + 
                "    }\n" + 
                "\n" + 
                "    public BalancedCustomer getBalancedCustomer() {\n" + 
                "        return balancedCustomer;\n" + 
                "    }\n" + 
                "\n" + 
                "    public void setBalancedCustomer(BalancedCustomer balancedCustomer) {\n" + 
                "        this.balancedCustomer = balancedCustomer;\n" + 
                "    }\n" + 
                "\n" + 
                "    public Session getSession() {\n" + 
                "        return session;\n" + 
                "    }\n" + 
                "\n" + 
                "    public void setSession(Session session) {\n" + 
                "        this.session = session;\n" + 
                "    }";

        System.out.println(input.replaceAll("(?m)^(?: *@.*)?\\n|^ +", ""));
输出:

public class User implements LSLEntity, HasUUID {
private Long id;
private String facebookId;
private String uuid;
private UserInfo userInfo;
private BalancedCustomer balancedCustomer;
private Session session;
public User(){
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFacebookId() {
return facebookId;
}
public void setFacebookId(String facebookId) {
this.facebookId = facebookId;
}
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public BalancedCustomer getBalancedCustomer() {
return balancedCustomer;
}
public void setBalancedCustomer(BalancedCustomer balancedCustomer) {
this.balancedCustomer = balancedCustomer;
}
public Session getSession() {
return session;
}
public void setSession(Session session) {
this.session = session;
}

你说这个
是什么意思?这个方法从注释中清除文件。但利润率下降了?你能提供预期的输出吗?不,这是我得到的。我期望与在源文件中一样,我为上面的示例提供了预期的输出。。我对java知之甚少。考虑将输出写入另一个文件。。