替换数组中的字符串,其中字符串的一部分是int

Yve*_*omb 0 java arrays string replace substring

我有代码,我有一个具有混合数据类型的对象的构造函数:

public GuidedTour(String tourID, String tourDescription, double tourFee,
        String tourDate, int tourSize, String tourLeader)
Run Code Online (Sandbox Code Playgroud)

我需要能够允许用户更新tourSize.

我可以搜索并找到特定的游览,但是我无法解决如何用输入的int值替换子字符串int newTourSize.

所以我试图替换的代码是:

String tourDetails;
String newDetails = tourDetails.replace(tourSize, newTourSize);
Run Code Online (Sandbox Code Playgroud)

它不会让我这样做,因为我使用的是int值.我尝试将int解析为String.

我不知道如何做到这一点,除了把所有的值都放回去,原始值带有新值,我相信找到并替换子串的那部分并将这个新字符串写入数组会更好.

我有点挣扎(但自从我的第一个java问题以来已经有了很大改进!)

有帮助吗?

JB *_*zet 5

看起来你的班级看起来像这样:

public class GuidedTour {
    private String tourDetails;

    public GuidedTour(String tourID, int tourSize) { // other arguments omitted for brevity
        this.tourDetails = tourID + tourSize;
    }

    public String getTourDetails() {
        return tourDetails;
    }
}
Run Code Online (Sandbox Code Playgroud)

而你现在想知道如何改变tourSizetourDetails.

嗯,这很容易.不要忘记旅游细节的各个部分.用类似的东西替换你的班级

public class GuidedTour {
    private String tourID;
    private int tourSize;

    public GuidedTour(String tourID, int tourSize) { // other arguments omitted for brevity
        this.tourID = tourID;
        this.tourSize = tourSize;
    }

    public String getTourDetails() {
        return tourID + tourSize;
    }

    public void setTourSize(int newTourSize) {
        this.tourSize = newTourSize;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在您不再需要进行任何String替换.您只需设置新的游览大小,并要求GuidedTour实例tourDetails通过重新组装所有部分来重新创建String.

  • 当然,这是正确的做法. (2认同)